iOS的手势
2015-07-01 17:03
573 查看
最近一个项目的需求,用到了手势识别,此处简单写一下使用时碰到的困难及解决方法。
UITapGestureRecognizer 点击手势
手势的识别需要userInteractionEnabled的支持,特别是把手势放到ImageView之类的,ImageView默认没有对userInteractionEnabled打开支持。
在view上添加手势,又在view上添加button或者tableviewcell。
a)、 button获取事件后,手势获取不到手势怎么办?
b)、tableviewcell点击后,手势再次获取手势怎么办?
通用的解决方法是使用代理,可以分情况解决
这个代理非常有用
还有一种是设置
拖拽手势
这个手势如果你需要多个,建议分开写。
对于它的控制还是使用代理
(BOOL)gestureRecognizer:(UIGestureRecognizer )gestureRecognizer shouldReceiveTouch:(UITouch )touch
此处经常使用的几个知识点:
CGPoint point = [touch locationInView:self.view];
获取你的手势在视图的位置
不是手势代理的
[你的手势 setTranslation:CGPointZero inView:_leftView];
把手势拖动归零。否则会一直叠加
暂时想到这些,如果有错误,请指出。
UITapGestureRecognizer 点击手势
手势的识别需要userInteractionEnabled的支持,特别是把手势放到ImageView之类的,ImageView默认没有对userInteractionEnabled打开支持。
在view上添加手势,又在view上添加button或者tableviewcell。
a)、 button获取事件后,手势获取不到手势怎么办?
b)、tableviewcell点击后,手势再次获取手势怎么办?
通用的解决方法是使用代理,可以分情况解决
#pragma mark UIGestureRecognizer delegate - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { // 输出点击的view的类名 NSLog(@"%@", NSStringFromClass([touch.view class])); // 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件 if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) { return NO; } }
这个代理非常有用
还有一种是设置
tapGestureRecognizer.cancelsTouchesInView = YES; // 默认是 yes
拖拽手势
这个手势如果你需要多个,建议分开写。
对于它的控制还是使用代理
(BOOL)gestureRecognizer:(UIGestureRecognizer )gestureRecognizer shouldReceiveTouch:(UITouch )touch
此处经常使用的几个知识点:
CGPoint point = [touch locationInView:self.view];
获取你的手势在视图的位置
不是手势代理的
[你的手势 setTranslation:CGPointZero inView:_leftView];
把手势拖动归零。否则会一直叠加
暂时想到这些,如果有错误,请指出。
相关文章推荐
- iOS 易忘的字符串方法
- iOS开发:创建真机调试证书
- iOS 常见的加密方法
- iOS开发笔记23——iOS工程结构
- iOS计算项目有多少行代码
- iOS进程间通信之CFMessagePort
- iOS md5加密
- iOS沙盒目录的访问
- iOS深入学习(NSNotificationCenter消息转发是同步操作)
- iOS开发搜集的一些资料
- ios 开发视频教程
- iOS collectionView属性和方法大全
- iOS:KVO的概述与使用
- iOS7以上自定义一个navigationController,并沿用系统的侧滑返回效果
- iOS: 如何正确的绘制1像素的线
- iOS 图片处理模糊_毛玻璃效果(董鑫)
- iOS KVO的实现
- iOS 自定义分享功能(分享到微博等sahreSDK)
- xCode升级 插件失效
- rommon模式下给路由器灌入IOS