[英]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.