iPhone 5 变长了,对于手指较短的人而言,拇指很难碰到导航栏上的按钮,操作并不方便。
ShortFingerViewController 主要为 UIViewController/UITableViewController 添加 '滑动检测' 功能,让 View 能够通过向下滑动/向左滑动等动作离开 ModalView 或返回到前一个菜单,让用户不需伸长手指点击导航栏上的相应按钮。
ShortFingerViewController 继承了 UIViewController 的全部 API。这意味着你可以不需要大面积修改您现成的代码。
-
下载后,将 SFViewController 文件夹中的所有文件拖入您的 XCode 项目中。
-
在需要使用 SFViewController 的 *.h 文件中使用
#import导入SFViewController.h文件。如果是 UITableViewController,需要导入SFTableViewController.h文件。如:#import "SFTableViewController.h" -
将超类(Superclass)改成 SFViewController。如:
@interface MainViewController : SFViewController -
通过使用
didPanToPositionX或者didPanToPositionY探测用户是否进行拖动。当用户拖动界面到达一定距离时,里面的代码就会执行。示范代码如下:- (void)didPanToPositionX{[self dismissModalViewControllerAnimated:YES];} -
如果您使用 Storyboard 或 Nib 开发软件,必须生成一个用于控制的 IBOutlet。打开助理编辑器(Assistant Editor,晚礼服图标),在 Interface Builder 中找到相应的 TableView 并按住右键,然后拖到右方的空白处。将 IBOutlet 命名为 tableView。这样能够保证您的设计能够在 SFViewController 中正常运行。
只要完成以上步骤,ShortFingerViewController 就能正常运行。
ShortFingerViewController 自带一些可以设置的选项,其中包括
presentSpeed显示速度previousViewMaskColor显示 ModalView 时背景 View 的背景颜色previousViewMaskAlpha显示 ModalView 时背景 View 的透明度enableVerticalPull允许纵向拖动enableHorizontalPull允许横向拖动positionXX 数值,在大于这个数值时激活 didPanToPositionXpositionYY 数值,在大于这个数值时激活 didPanToPositionY
SFViewController 自带两张图片,用于显示标准 TableView 背景。如果您的 TableView 需要使用标准背景,您必须将他们导入到您的项目当中。
通过设置 navigationBackgroundColor ,您可以指定显示特定的颜色或图片。在 loadView 或 viewDidLoad 中加上如 [self setNavigationBackgroundColor:[UIColor redColor]]; ,您就能够对带有导航栏的 ViewController 设置一个不受拖动干扰的背景。
当在不同的 ViewController 之间跳转时,背景会进行自动过渡。这意味着如果您的 ViewControllers 使用着同一个背景的话,您需要在每一个 ViewControllers 中分别设置一次背景,否则 ViewController 会显示标准背景。
ShortFingerViewController 是 Sean Cheng 为其项目 CloudsFM 所写的一些代码。是我第一次写 Public Code,感到非常高兴。希望您会觉得这些代码有用。遇到 BUG 请告诉我。谢谢!

