有钱人捧个钱场,没钱捧个人场,看一看。
在写这个demo以前觉得转场动画就像女神,离我很远,日常项目根本接触不到。毕竟系统自带的就好用,身体轻,容易推倒。但是好的动画效果就像电影彩蛋,不经意间给用户一个惊喜,这对App拉新传播很有帮助。而且程序员写完之后,不仅可以在测试女神面前展示自己的操作,还可以让老板在投资人面前炫耀自己的团队质量,吸引更多的资金,从而在弯道超车,让自己升职加薪,达到人生
中国有很多公司在互动方面做得很好,比如腾讯和字节跳动。demo主要是写AppStore所以我研究了跳转和抖音评论【AppStore】、【抖音】、【QQ这三种产品:音乐。
接下来,我简洁全面,就样demo在实现过程中,产品相互比较,对比问题进行描述。
转场动画主要由转场动画、跳转协议、手势交互三部分组成。
转场动画是对动画效果的代码描述,并遵守UIViewControllerAni ** tedTransitioning协议。
跳转协议在push,press等协议的相关方法里,返回动画对象。
手势交互是用手势来控制动画的进度,通常是建立的UIPercentDrivenInteractiveTransition的子类。
这里我就不描述转场动画的基本概念了,网上有很多相关资料。
AppStore主页的动画主页分为这些部分。
长按,视图缩小,松开后,视图扩展到下一个界面,具有轻微的弹簧效果。
点击,缩小视图,松开后,将视图扩展到下一个界面,并具有轻微的弹簧效果。
长按后滑动,先缩小视图,再恢复原状。
这里直接用我UIButton处理这些手势,touchesBegan处理视图缩小,touchesEnded点击回调处理。所以这里加了一个。bool属性endTouchesBegan用于判断视图是否已缩小。如果缩小,直接回调,如果没有,则先进行缩小载回调。
AppStore动画第一界面statusBar为显示,第二个界面隐藏,第三个界面恢复显示。我们使用它bool属性hideStatus判断显示隐藏。
第一个界面,默认self.hideStatus =NO,显示。点击图片时,调用strongSelf.hideStatus =YES隐藏;这样做的目的是通过第二个界面pop回来时,statusBar先隐藏,然后采用以下方法进行statusBar动画显示。
同样,第二个界面也是如此,但第二个界面不知道push进去还是pop所以增加了push属性。
tabBar开始想用动画hidesBottomBarWhenPushed隐藏,但和AppStore转场动画不太合适,就像AppStore的tabBar的动画在UINavigationControllerDelegate处理协议方法。
AppStore转场pop手势的上下滑动与抖音评论的效果非常相似,但下,AppStore页面还增加了左滑pop手势。
一开始,我想用苹果自己的边缘手势UIScreenEdgePanGestureRecognizer来进行处理,但发现这样只能解决横向侧滑pop,垂直滑动无法解决pop的问题。干脆自己写一套手势,可以横向竖向支撑。横向滑动还支持全屏、半屏等距离属性的设置,写全局宏TLPanEdgeInside来控制。
自认比较手势处理AppStore评论抖音的效果很好。因为不管怎样AppStore或者抖音评论只能改变上下方向之一,或者改变UIScrollView要么改变控制器的偏移量pop进度。我包装的这套手势可以自由上下改变,可以监控开始的手势,从上下滑动到左右滑动,或者基于上下。
因为push转场时间为0.8秒,我在第一个控制器中添加了以下内容userEnabled属性用于防止重复点击。demo的代码。
AppStore转移主要涉及三种方法:
-(NSArray*_Nonnull)tl_transitionUIViewFrameViews;
-(NSString *_Nonnull)tl_transitionUIViewI ** ge;
-(void)setContainScrollView:(UIScrollView *)scrollView isPush:(BOOL)isPush;
第一种方法是回调前一个视图和后一个视图中的动画控件。
二是图片资源的回调。
三是防止手势冲突,避免冲突UIScrollView视图进入。
导航栏隐藏的判断是在UINavigationControllerDelegate协议中判断,但考虑到项目中的一些页面并非所有页面都需要转移动画,因此UINavigationControllerDelegate协议在两个地方重写。并且还在UIViewController在分类中重写viewWillAppear判断方便常规push和转场push自由切换。
处理抖音评论手势和AppStore的一模一样。只不过AppStore是push,抖音评论是press。
这里的链接和抖音完全一样,DouYinComment。这个demo是基于视图层级弹窗,而我写的是弹出控制器。
同时,为了避免快速扫描引起的闪光,我在手势结束时做出了判断。当速度过快,扫描距离过短时,直接进行pop或者di ** iss。
研究转场动画时要注意QQ音乐界面有一个小问题,就是当加藤鹰手速上下滑动时,界面和顶部之间的间隙会越来越大。应该是手势和界面偏移之间的问题。
这种效果很好看,处理起来也很简单。只需将相应的控制器传输到转移动画中即可。图片浏览功能也可以这样包装。
这也很简单,但通常用于没有导航栏的界面,否则看起来会很丑。
因为一些小伙伴提议模仿AppStore在动画中,当我点击X时,过渡点不自然,我优化了一些代码,具体参考TLAni ** tionAppStoreStyle文件。
同时对AppStore动画里面的statusBar部分和tabBar进一步处理了部分。
、
上一篇:制作MG动画会用到哪个软件?
下一篇:mg二维动画设计的应用范围研究
- 深圳MG动画制作公司成为具有国际影响力的企业 2024/12/21
- 深圳动画视频制作的关键点 2024/12/20
- 深圳三维动画制作产业在技术实力和市场需求优势明显 2024/12/19
- 深圳产品三维动画制作的背景 2024/12/18
- 深圳三维动画的发展背景、应用和未来前景 2024/12/17
- 深圳音像视频演示制作厂家 2024/12/16
- 深圳的三维动画设计公司 2024/12/15
- 深圳动画制作公司成功之道 2024/12/14
- 什么是产品三维动画制作? 2024/12/13
- MediaJL具备多方面的优势 2024/12/12