深层切换效果实现原理的理解(类似微信)
来源:互联网 发布:lol扫号器数据 编辑:程序博客网 时间:2024/04/25 17:09
第三方开源类src,包括一个MLNavigationController类。
1,在self.view上add了一个imageView,放了一个“leftside_shadow_bg“的图片,frame为(-10,0,10,self.view.size.height)。
作用:在上面一层加了个阴影效果。
2,viewDidLoad中加了一个UIPanGestureRecognizer手势。
3,此类重写了pushViewController方法。
2push到3的时候,将2的截屏放到了一个screenShotsList数组中。
4,当由3切到2的时候,重点执行手势的方法
- (void)paningGestureReceive:(UIPanGestureRecognizer *)recoginzer。
效果是这样的:3往右滑,2像是渐渐出来,四边有块黑边的view会渐渐消失。
考虑到这,在keyWindow和3的下面放一承载的backGroundView。backgroundView上放2的截屏,2上再add一blackColor的view盖住它。在手势滑动的过程中,只需设置这层black View的alpha即可。设置一个移动距离的最大值,>50时,直接将3frame的x坐标设为320,2frame的x坐标设为0。
看这段滑动过程中执行的代码:
- (void)moveViewWithX:(float)x
{
NSLog(@"Move to:%f",x);
x = x>320?320:x;
x = x<0?0:x;
CGRect frame = self.view.frame;
frame.origin.x = x;
self.view.frame = frame;
float scale = (x/6400)+0.95;
float alpha = 0.4 - (x/800);
lastScreenShotView.transform =CGAffineTransformMakeScale(scale, scale);
blackMask.alpha = alpha;
}
x,即移动距离,x越大,2的scale越大,blak view的alpha越小。5,结束的时候,重写了pop方法。
将最后一个截屏从数组中remove掉。
- 深层切换效果实现原理的理解(类似微信)
- android实现类似微信的开门效果
- 使用FragmentTabHost实现类似微信底部的效果
- 用Fragment实现类似微信效果
- Android开发-优雅的实现动态图片排版(类似微信图片展示效果)
- 视频直播时做多场景切换(实现类似切换台的效果)
- 微信界面切换效果是怎样实现的
- android 实现类似微信滑动切换界面
- [IOS视图切换]ViewDeck类似path效果的实现
- Fragment+ViewPager实现类似ActionBar切换的效果
- weui+swiper 滑动底部导航栏切换 类似微信切换效果
- 使用photoview+viewpager实现图片缩放切换(类似微信朋友圈图片查看)
- Android 实现类似微信页面底部导航效果
- viewpager+fragment的懒加载实现微信点击和滑动切换功能(切换效果)
- swift实现ios类似微信输入框跟随键盘弹出的效果
- Swift 实现 iOS 类似微信输入框跟随键盘弹出的效果
- swift实现ios类似微信输入框跟随键盘弹出的效果
- Pyqt4下使用QListWidget控件实现的类似微信消息列表效果
- Android Activity和Intent机制
- Lucene,Nutch,Hadoop 之间有什么关系?
- 电影类型
- hdu3294(Manacher算法)
- 【算法】中缀表达式、后缀表达式的java实现几网上观点的勘误。
- 深层切换效果实现原理的理解(类似微信)
- JavaSE 1
- 博弈论 入门总结
- HDU 2492 Ping pong (树状数组+离散化+找规律)
- winpcap第一个程序 检测网卡
- wikioi p1044 拦截导弹
- java web项目各种乱码的解决方案
- hdu1789 Doing Homework again (贪心)
- wikioi p1576 最长严格上升子序列