![](/img/trans.png)
[英]How can I recognize a tap on a UIImageView-subclass inside a UIScrollView?
[英]How can I detect if the user just wanted to scroll, and not tap on an UIImageView inside a UIScrollView?
我实现了一个UIScrollView,其中包含一个UIImageView对象的网格。 对于超级视图及其子视图,userInteractionEnabled为YES。 当用户滚动并且他/她的手指触摸UIImageView时,它立即识别出对此的轻击,这不是我想要的;)
在该UIImageView对象内部,我具有以下方法:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if ([touch view] == self && [touch tapCount] >= 1) {
NSLog(@"Cooooool! The user touched me!");
}
}
有没有一种方法可以识别类似“哦,不,用户实际上只想滚动,所以请不要太认真!”? 基本上,我需要的是主屏幕的行为,即手指可能触摸图标,但是当用户开始滚动并抬起手指时,将不会启动触摸的应用程序。
UIScrollView
已经为您实现了该行为。 如果用户足够快地拖动,则永远不会调用您的touchesBegan:withEvent:
方法。
另一方面,如果用户很慢并且滚动视图将触摸转发到UIImageView
子类,但随后仅意识到用户打算滚动,它将调用您的自定义类' -(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
方法。
只需实施它,您就会收到取消触摸的通知。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.