iOS手势基础认识

iOS开发中,手势的使用是非常普遍的。类似长按交互,双指捏合缩小图片等等手势,这些基本的手势苹果都已经封装了。所以灵活使用手势,可以让App更有趣,更具有交互性。当然要有一个靠谱的产品经理或者策划的角色才会去精炼这一块,并融合到App中。更常见的App设计估计就是这里加个按钮,那里放个菜单的摆放设计。。。不吐槽,好好学习。

官方的Doc文档是最好的教程。所以多看官方的教程,英文多积累些词汇就好。

手势类的继承关系图。

继承关系图(自上而下)
NSObject
UIGestureRecognizer
UITapGestureRecognizer、UIPinchGestureRecognizer、UIRotationGestureRecognizer、UISwipeGestureRecognizer、UIPanGestureRecognizer、UIScreenEdgePanGestureRecognizer、UILongPressGestureRecognizer

上面的表达式可以了解到:iOS中的手势基类是UIGestureRecognizer,它的子类有7个、如上所示的7类。

这7个类代表不同的7个手势。分别是:

  1. UITapGestureRecognizer。快速点按弹起手势,支持单击,双击,多次点击等的识别。类似按钮的点击手势,常用来监听UILabel标签的点击事件。

  2. UIPinchGestureRecognizer。两个手指的捏合手势。常见操作就是放大缩小照片。

  3. UIRotationGestureRecognizer。两个手指的旋转手势。常见操作就是旋转照片。

  4. UISwipeGestureRecognizer。手指快速移动扫一下的手势。从屏幕左侧快速滑动到屏幕右侧,触发某些操作。

  5. UIPanGestureRecognizer。手指慢速拖动手势。常用来拖动控件。

  6. UIScreenEdgePanGestureRecognizer。手指屏幕边缘的滑动手势。这个常见的就是系统自带的返回上一级的back手势。

  7. UILongPressGestureRecognizer。手指长按手势。这个常见。比如长按排序,长按弹出菜单等。

再看看Xcode里面的控件栏的手势图像标识:(很形象)

效果

最基本的使用这些手势类也非常的简单:

//首先创建需要的手势,然后将手势绑定到对象控件上。这样就能监听对象控件上的手势。
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressGestureEvent:)];
[self.ballView addGestureRecognizer:longPress];

- (void)longPressGestureEvent:(id)sender {
    UILongPressGestureRecognizer *longPress = sender;

    //获取被绑定的对象,就是上面绑定的self.ballView
    UIView *selfView = longPress.view;
    
    selfView.backgroundColor = [UIColor blueColor];
    
}

这样就可以实现对特定控件对象的手势长按监听了。需要注意的是不同的手势之间还是有差别的。比如Swipe手势,需要区分上下左右四个方向,需要在创建的时候指定,其他的手势也是类似的。

具体的手势捕捉成功的回调函数中,各自类的处理方法也不尽相同,需要根据文档来做出自己的需要的处理。各自手势的具体使用举例,网上也应该有非常的多。使用有问题的地方可以搜索下。

手势使用时需要注意:一个手势只能对应一个View,但是一个View可以有多个手势。


浅显部分已经了解。如果项目需要,继续深入学习以下内容:

手势协议:UIGestureRecognizerDelegate
手势定义的几种状态
手势的判定前后触摸事件流向
多个手势同时识别的处理、优先级的设置。(参考文章)

文章来自 http://skymonkey.cn/

高能广告区

暂无广告哦=^^=。继续看看其它文章吧!