簡體   English   中英

如何檢測用戶是否只想滾動而不是在UIScrollView內點擊UIImageView?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM