21. 手势识别之UITapGestureRecognizer
来源:互联网 发布:淘宝退款不退货教程 编辑:程序博客网 时间:2024/05/16 12:27
UITapGestureRecognizer
点击手势, 可以设置单击,双击,多击,还可以设置使用几根手指, 下面我们学习如何使用它
1.UITapGestureRecognizer的创建
import UIKitclass ViewController: UIViewController { var label: UILabel? override func viewDidLoad() { super.viewDidLoad() label = UILabel(frame: CGRect(x: 20, y: 20, width: 300, height: 60)) label?.textAlignment = .Center self.view.addSubview(label!) let tap = UITapGestureRecognizer(target: self, action: "tapAction:") // 需要点击的次数 tap.numberOfTapsRequired = 2 // 需要触摸的手指数 tap.numberOfTouchesRequired = 2 self.view.addGestureRecognizer(tap) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func tapAction(tapGestureRecognizer: UITapGestureRecognizer) { self.label?.text = "点击手势" }}
运行程序
2. UITapGestureRecognizer详解
我们查看UITapGestureRecognizer的定义:
@available(iOS 3.2, *)public class UITapGestureRecognizer : UIGestureRecognizer { // 需要点击的数目, 默认值是1 public var numberOfTapsRequired: Int // 指定手指数, 默认值是1 public var numberOfTouchesRequired: Int }
这个类的属性还是蛮少的
3. UITapGestureRecognizer的坑
默认情况下,如果同时设置了单击和双击, 那么双击时,单击也会触发,要解决这个问题,我们要使用requireGestureRecognizerToFail方法, 它是UIGestureRecognizer的方法. 代码在第四部分中展示
4. 完整代码
import UIKitclass ViewController: UIViewController { var label: UILabel? override func viewDidLoad() { super.viewDidLoad() label = UILabel(frame: CGRect(x: 20, y: 20, width: 300, height: 60)) label?.textAlignment = .Center self.view.addSubview(label!) let tap = UITapGestureRecognizer(target: self, action: "tapAction:") // 需要点击的次数 tap.numberOfTapsRequired = 2 // 需要触摸的手指数 tap.numberOfTouchesRequired = 2 self.view.addGestureRecognizer(tap) let tapSingle = UITapGestureRecognizer(target: self, action: "tapAction2:") // 需要点击的次数 tapSingle.numberOfTapsRequired = 1 // 需要触摸的手指数 tapSingle.numberOfTouchesRequired = 2 tapSingle.requireGestureRecognizerToFail(tap) self.view.addGestureRecognizer(tapSingle) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func tapAction(tapGestureRecognizer: UITapGestureRecognizer) { self.label?.text = "点击手势" print("双击") } func tapAction2(tapGestureRecognizer: UITapGestureRecognizer) { print("单击") }}
1 0
- 21. 手势识别之UITapGestureRecognizer
- 手势识别-UITapGestureRecognizer
- UITapGestureRecognizer手势识别之双击和单击结合
- 手势识别器(UIGestureRecognizer)- UITapGestureRecognizer(敲击)
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- ios-day17-05(手势识别器(UIGestureRecognizer)之敲击——UITapGestureRecognizer)
- 添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- UITapGestureRecognizer手势识别(双击、捏、旋转、拖动、划动、长按)
- android之手势识别
- android之手势识别
- android之手势识别
- IOS之手势识别
- Android之手势识别
- ios之手势识别
- Android 之手势识别
- Android之手势识别
- UITapGestureRecognizer 手势使用方法
- Hibernate 忽略非数据库字段属性
- 先弄个XML解析器代码抄一抄 慢慢研究 O(∩_∩)O哈哈~
- mips下的异常、中断
- javascript创建构造函数时作用域安全,即怎样保证一直都是构造函数
- iOS 开发小技巧(二)
- 21. 手势识别之UITapGestureRecognizer
- C++中字面值常量和字面值类型
- ExpandableListView组件分组用法
- 关于VxWorks6.8的内存空间分配
- python笔记 爬虫经常出现的错误UnicodeEncodeError
- 前端渲染:服务器渲染 or 客户端渲染
- 给SVN泼盆冷水,是时候用GIT了
- chrome49的cc层里一处小小优化不到位的地方
- 动态内存分配和指针