在 Readibility 第一次体验过这个控件,发现看文章的时候体验非常爽,看完一篇滑一下就可以返回到文章列表。后来网易新闻和新浪微博的 iPhone 客户端也引入了这个控件,于是我就想试试在 微淘 中加入这个手势试试。 图片来源 虽说加入这个控件是我的一时冲动,但分析一下我觉得还是有这个道理的。 很多人都是单手拿着 iPhone 来玩的,这是我在坐车和吃饭的时候看到很多人都这样玩而得到的经验。因此这就有左右手的区别了,然而一般的 app 都是非对称的,比如导航栏左边是个返回按钮,右边是个功能按钮。如果一个人用右手玩 app 的时候,很多时候都很难点击左上的按钮,特别是手指不够修成的女孩。 iPhone 5 拿让人蛋痛的4寸屏。以前拿着来刷微博的时候就觉得按导航栏的按钮特别累(我手指已经比较修长了)。但是要我的拇指伸长到4寸来点击那个返回按钮,真是想把它甩了。 这个控件就是很 cool 。 在实现上我纠结了很久,因为学习 obj-c 并不是很长时间,所以有很多特性很不会用,对于现有 app 的代码,我需要动最少的地方来把这个控件接入进来。于是我选了几个入口。 继承 UINavigationController 的 pushViewController 方法做拓展 直接在 UIView 做这个事情 我需要用到的东西包括: 当前的 UIView 上一个页面的 UIView UINavigationController 经过一段时间的考虑,我还是用第二个接入口,而我需要的东西不是前后两个UIView,而且 前后两个UIViewController的截屏 ,然后向 UIView 加入了 UIPanGestureRecognizer 来做手指拖动跟踪。 声明一下,我的代码都是ARC模式的,自己加retain, release, autoRelease就好了 截屏代码: @implementation UIViewController (ScreenShot) -(UIImage*)generateScreenShot { CGSize size = [UIScreen mainScreen].bounds.size; UIGraphicsBeginImageContextWithOptions(...