iOS开发>学无止境 - 新浪微博iOS底部功能按钮简单实现
2015-11-28 23:54
471 查看
以上效果主要涉及点
九宫格布局
形变动画
UIView动画
首先,考虑图片的效果,初步采用使用modal控制器来实现,但是考虑到modal最后会移除modal他的控制器的view,所以,还是使用自定义UIView来实现这个功能。
做这种功能,首先实现的是按钮出现位置,后面在实现动画就容易了。
首先进行九宫格布局,创建模型传入指定数量的按钮,并且使用形变,将所有的按钮移动到看不见的坐标
点击底部按钮后,设置形变至屏幕区域(这里直接设置成CGAffineTransformIdentity)
对功能按钮的点击和松开进行监听(实现touches方法也可),按钮点击功能菜单按钮后,使用形变设置按钮变大,松开时,再设置形变变大,并且使其透明度为0
再点击底部按钮后,设置形变至不可见区域
明确几个功能点后,动画效果就好说了。
点击底部按钮后,使用UIView弹性动画,每个按钮设置不同的delay,这样就实现了弹簧与时间间隔效果了。
(void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
点击功能菜单后,在点击时使用普通UIView动画,使按钮变大,松开时,再次使用UIView,让按钮变大的同时渐渐消失
再次点击底部按钮后,使用普通的UIView动画,倒序隐藏并缩小按钮
文章来自: tripleCC
项目地址:https://github.com/tripleCC/TPCSpringMenu
相关文章推荐
- iOS开发>学无止境 - 保存照片到自己创建的相簿
- ios之自定义导航栏背景,标题和返回按钮文字颜色
- iOS开发>学无止境 - 遍历Model类的属性并完善使用Runtime给Model类赋值
- iOS开发>学无止境 - 6个iOS图片文本设计的小技巧
- iOS开发>学无止境 - 彩色TabBar切换动画实现
- iOS开发>学无止境 - 多线程简单介绍
- iOS开发>学无止境 - 方法缓存
- iOS开发>学无止境 - 异步图片加载优化与常用开源库分析
- iOS开发>学无止境 - Cell异步图片加载优化,缓存机制详解
- iOS开发>学无止境 - 自定义控制器转场动画及实现下拉菜单的小Demo
- iOS开发>学无止境 - AutoLayout 实现固定宽度动态高度的 ScrollView
- iOS开发>学无止境 - 全面了解 iOS 静态库开发
- iOS开发>学无止境 - POP 介绍与使用实践(快速上手动画)
- iOS开发>学无止境 - 简单介绍MVC
- iOS Core data多线程并发访问的问题
- iOS中为什么block用copy来修饰
- iOS最简单绘图实现
- 【iOS】containsString iOS7 报错
- 【原】iOS动态性(四):一行代码实现iOS序列化与反序列化(runtime)
- IOS之保存登录状态