AI智能
改变未来

iOS复习记录日记15-触摸事件,手势识别[2020]


前文

对于屏幕的基本触摸事件的了解

正文

不是任何对象都可以处理对象的,只有继承了UIResponder才能够接受和处理事件
-(void)touchsbegan 按下后
-(void)touchmoved 点击后不松手拖动
-(void)touchesEnded 松开后
-(void)touchesCancelled 意外结束 闹钟 电话

NSSet(<UITouch*>*)touches 参数
NSSet通过anyObject就可以取出来UItouch对象了
key:phase value:began //类型 枚举
key:tapCount value: 1 //快速点击次数
key:window //点击的view所在的window
key:view //触摸的view
key: locationInView:uiview //返回相对于uiview的点击坐标
key: previousLOcationInView:uiview //返回上个点的位置

如需要多指触控
MultipleTouch要开启,NSSet(<UITouch*>*)touches就可能会返回多于1个了

如果没效果
属性交互关闭了
透明度<=0.01
隐藏的时候
子视图超出了父控件的有效范围

手势识别

为了完成手势识别,需要用UIGestureRecognizer这个类
它是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理手势
UiTapGetstureRecogizer(敲击)
/ /. numerOFtapsRequired: 2 代表变为双击敲机
//. numerOfTouchesRequired: 2 //要用几个手指
UILognPressGestureRecognizer(长按)
//注意:长按后的移动也会调用
//通过sender的state判断UIGestureRecognizerStateBegan即可只需第一次
//. minimumPressDuration长按时间 默认0.5
//. allowableMovement 长按过程中 接受的不小心移动像素
UISwipeGestureRecognizer(轻扫)
//注意:默认是从左往右的
//通过再次添加一个清扫事件,改变属性direction为
//UISwipeGestureRecognizerDirecctionRight这个枚举就可以了
UIPinchGestureRecognizer(捏合)
//scale 目前缩放的倍数 默认为1
UIPanGEstureRecognizer(拖拽)(平移)
//translationInview:sender.view CGPoint
UIRotationGestureRecognizer(旋转)
//rotation 目前手势的度数 默认为0

//创建手势对象
UITapGestureRecognizer *tap = [UITapGestureRecognizer alloc]
initWithTarget:self action:@xxx:
//将这个手势添加到imageview里面
[UIview addGestureRecognizer:tap];
//实现手势的绑定target

手势冲突
多个手势的时候,旋转和捏合是无法同时执行的.如果需要同时执行
则把创建的手势对象的代理设置为自己,并且实现代理方法:
gestureRecognizer 返回YES,表示多个手势可以一起执行

  • 点赞
  • 收藏
  • 分享
  • 文章举报

pathosis9发布了16 篇原创文章 · 获赞 0 · 访问量 2821私信关注

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » iOS复习记录日记15-触摸事件,手势识别[2020]