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,表示多个手势可以一起执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值