2009-05-22 54 views
0

我已經實現了一個包含UIImageView對象網格的UIScrollView。對於superview和它的子視圖,userInteractionEnabled都是YES。當用戶滾動和他/她的手指觸碰到的UIImageView,它imediately認識上自來水,這不是我想要的東西;)如何檢測用戶是否只想滾動,而不是點擊UIScrollView中的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!"); 
    } 
} 

有沒有辦法讓我可以識別「哦,不,用戶實際上只想滾動,所以不要太認真!」?基本上,我需要的是主屏幕的行爲,手指可能會觸摸圖標,但當用戶開始滾動並擡起手指時,所觸摸的應用程序將不會啓動。

回答

2

UIScrollView已經爲您實現了該行爲。如果用戶足夠快地拖動,您的方法將永遠不會被調用。

另一方面,如果用戶速度較慢,並且滾動視圖將觸摸轉發給您的子類,但只會意識到用戶想要滾動,則會調用您的自定義類「-(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event」方法。

只要執行它,你會被通知取消觸摸。

相關問題