簡體   English   中英

如何使用滾動視圖檢測觸摸?

[英]how can i detect a touch with a scroll view?

我希望在用戶觸摸屏幕時運行某些方法,因此在ViewController中實現了touchesBegan:withEvent:方法,但是當我將滾動視圖拖放到iPhone上時,touchesBegan:withEvent:方法不再被調用。

為了解決這個問題,我在ViewController中實現了beginFirstResponder方法,並告訴它return YES; 然后在viewDidAppear方法中,我調用了[self becomeFirstResponder];

但是,畢竟這沒有用。

我還嘗試創建一個自定義滾動視圖並在其中創建一個ViewController對象屬性,然后在我的自定義滾動視圖的touchesBegan:withEvent:方法中實現了它說[self.mainViewController touchesBegan:withEvent]所以希望每次我觸摸屏幕將調用我的自定義滾動視圖上的touchesBegan方法,然后由於該原因,我的vc中的touchesBegan方法將被調用,但這也無濟於事。

我還向我的vc制作了一個滾動視圖的出口,並向其中添加了一個輕擊手勢識別器,並使用一種方法和一些東西來啟動它,並且該方法以我啟動的方法被調用了,但這只是在我觸摸了屏幕內部之后,我希望在觸摸屏幕后立即調用該方法

非常感謝任何答案!

  1. 創建UIScrollView的子類
  2. 覆蓋觸摸結束,如果用戶單擊而不是拖動,則將消息手動轉發給第一響應者。

      @interface MyScrollView : UIScrollView { } @end @implementation MyScrollView - (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event { if (!self.dragging) { [self.nextResponder touchesEnded: touches withEvent:event]; } [super touchesEnded: touches withEvent: event]; } @end 

為此,我只創建了自己的自定義滾動視圖類,並使用我創建的委托方法在uiscroll視圖中實現了touchesBegan:withEvent:方法。

所以基本上我只需要使用委托。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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