新闻中心
联系我们

深圳艺虎文化传播有限公司

地址:深圳市-罗湖区-怡景路1080号

电话:400-804-9112

价格咨询:1076576968 点击这里联系我们

动画制作: 849500115 点击这里联系我们

业务邮箱:service@yihoo.sh

当前位置:深圳公益动画制作 »公司新闻 » 转场动画-仿AppStore跳转及抖音评论
转场动画-仿AppStore跳转及抖音评论
公司新闻 / 2022-09-25

有钱人捧个钱场,没钱捧个人场,看一看。

在写这个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进一步处理了部分。

公司简介新闻中心作品展示联系我们
地址:深圳市-罗湖区-怡景路1080号 | 电 话:400-804-9112 | 邮箱:service@yihoo.sh
深圳公益动画制作,深圳创意动画短片制作,深圳flash产品演示动画制作 沪ICP备11015150号-26