obj*_*pro 42 user-interface objective-c uigesturerecognizer ios uitapgesturerecognizer
我对编程和目标C都很陌生.我想知道如何制作一个有空白屏幕和计时器一分钟的应用程序.你的意思是尽可能快地点击,只要你可以.我想知道如何实现UITapGestureRecognizer我的代码.
小智 94
这是关于如何在班级中实现手势识别器的分步指南:
使您的班级符合UIGestureRecognizerDelegate协议.
实例化手势识别器.例如,要实例化a UITapGestureRecognizer,我们将:
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
Run Code Online (Sandbox Code Playgroud)
这里,action是处理手势的选择器.在这里,我们的选择器handleTapFrom将如下所示:
- (void) handleTapFrom: (UITapGestureRecognizer *)recognizer
{
//Code to handle the gesture
}
Run Code Online (Sandbox Code Playgroud)
选择器的参数是手势识别器.我们可以使用这个手势识别器来访问它的属性,例如,我们可以发现手势识别的状态,如,UIGestureRecognizerStateBegan,UIGestureRecognizerStateEnded,等.
在实例化的手势识别器上设置所需的属性.例如,对于a UITapGestureRecognizer,我们可以设置属性numberOfTapsRequired,和numberOfTouchesRequired.
将手势识别器添加到要检测手势的视图中.在我们的示例代码中(我将分享该代码供您参考),我们将使用以下代码行向imageView添加手势识别器:
[self.imageView addGestureRecognizer:tapGestureRecognizer];
Run Code Online (Sandbox Code Playgroud)将手势识别器添加到视图后,设置手势识别器的委托,即将处理所有手势识别器内容的类.在我们的示例代码中,它将是:
tapGestureRecognizer.delegate = self;
Run Code Online (Sandbox Code Playgroud)
注意:将手势识别器添加到视图后分配代理.否则,将不会调用action方法.
小智 14
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[self.tableView addGestureRecognizer:gestureRecognizer];
self.tableView.userInteractionEnabled = YES;
gestureRecognizer.cancelsTouchesInView = NO; // this prevents the gesture recognizers to 'block' touches
Run Code Online (Sandbox Code Playgroud)
Kin*_*ard 14
Swift中的示例:
import UIKit
class ViewController: UIViewController {
@IBOutlet var myUIImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let singleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "myUIImageViewTapped:")
singleTap.numberOfTapsRequired = 1
singleTap.numberOfTouchesRequired = 1
self.myUIImageView.addGestureRecognizer(singleTap)
self.myUIImageView.userInteractionEnabled = true
}
func myUIImageViewTapped(recognizer: UITapGestureRecognizer) {
if(recognizer.state == UIGestureRecognizerState.Ended){
println("myUIImageView has been tapped by the user.")
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74254 次 |
| 最近记录: |