手势识别
关于手势这一块,iOS原生的手势就有6种,点按,长按,轻扫,拖拽,缩放,旋转,后面我将一一介绍这些手势
控件交互
简单来说,控件交互就是指我们点击了某个视图view,这个view会不会触发我们想要的效果,控件不接收交互主要有以下5种情况:
1、控件的透明度<=0.01
2、控件被设置成了hidden
3、在storyboard中右侧列表指定控件的userInteractionEnable取消了,也就是userInteractionEnable = NO用户交互关闭,注意:图片框默认是不接受用户交互的!
4、控件的父控件不接受用户交互
5、控件超出了父控件的区域
以前在做一项需求的时候,自己把自己坑了一把,该需求为:一个“+”按钮,点击后展示出一个新的view,新的view中有各个按钮,写完后发现新的view中的各个按钮点击了就是没有任何效果,不会调用指定方法,经历了各种复杂的测试,最后发现是这个新的view中的各个按钮超出了父控件原始的大小,所以无法交互(这是一个大坑,各位需谨慎)
触摸事件的产生与传递
1、触摸事件的响应,从当前控件到父控件,一次响应
2、hitText方法(碰撞测试),苹果内部的算法默认会调用两次
3、触摸点查找的过程:应用程序 -> 窗口 -> 控制器 -> 控制器根视图 -> 最后一个子控件 -> 子控件内部的子控件 -> 返回该子控件
手势识别器
手势识别器的用法:1、实例化手势识别器的对象,2、将手势识别器添加到视图上,3、实现对应的监听方法
1、点按手势(tap)
2、长按手势(longPress)
3、轻扫手势(swipe)
4、拖拽手势(pan)
5、旋转手势(rotate)
6、缩放手势(pinch)
各种手势的响应方式及方法,就不一一介绍了(我懒了,以后再补)