2012-10-22 46 views
3

我有一些UIViews在它一個UIScrollView相互作用。 我想要做的是在UIViews被觸摸/未觸及時捕捉觸摸事件。檢測觸摸在內部的UIScrollView一個UIView優選禁用

我遇到的問題是UIScrollView似乎吞噬了所有的觸摸事件,特別是如果你在UIView上持有太久。

我優選希望UIScrollView具有用戶交互禁用,因爲它會自動滾動。

這可能嗎?

我試圖子類UIViews但觸摸事件從未在叫。

回答

1

也許你重新排序意見,使具有與之相關聯的觸摸識別對象的視圖是應用程序識別什麼。移動它在文檔大綱頂端(滾動視圖)

+0

我沒有想到這一點,但我認爲這將是非常難以移動的UIView相同的速度滾動視圖 – Darren

+0

@Darren嗯。怎麼樣一個UIButton設置爲自定義,並將alpha bg設置爲0.0?此外,如果您添加一個UIView,它不一定要隨UIScrollView一起移動... – jpcguy89

4

您可以沿着這些線路附加tapGesturescrollview的東西:

UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureUpdated:)]; 
    tapGesture.delegate = self; 
    tapGesture.numberOfTapsRequired = 1; 
    tapGesture.numberOfTouchesRequired = 1; 
    [self addGestureRecognizer:_tapGesture]; 

然後在- (void)tapGestureUpdated:(UITapGestureRecognizer *)tapGesture方法,這是你的責任,以確定觸摸的位置並查看是否有某個子視圖正在拾取。然後你可以調用委託的方法來通知特定的視圖已經被觸動。

+0

這種方法只能被調用一次嗎?如果時間觸摸在UIView上,我想要長度,所以需要touchStart和touchEnd事件。 – Darren

+0

的tapGesture參數有一個狀態,如UIGestureRecognizerStateBegan或UIGestureRecognizerStateEnd我會用這個來檢測你有興趣的兩個觸摸事件 – tiguero

+0

確保ü閱讀的tapgesture官方文檔,但:http://developer.apple.com/library/ ios /#documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html#// apple_ref/occ/cl/UIGestureRecognizer – tiguero