0

ユーザーが画面に触れたときにいくつかのメソッドを実行したいので、ViewController に touchesBegan:withEvent: メソッドを実装しましたが、スクロール ビューを iPhone にドラッグ アンド ドロップすると、touchesBegan:withEvent: メソッドが呼び出されなくなりました。

試して修正するために、ViewControllerにbecomeFirstResponderメソッドを実装し、それを伝えてからreturn YES;、viewDidAppearメソッドで呼び出しました[self becomeFirstResponder];

しかし、結局それはうまくいきませんでした。

また、カスタム スクロール ビューを作成し、そこに ViewController オブジェクト プロパティを作成してみました。次に、カスタム スクロール ビューの touchesBegan:withEvent: メソッドで[self.mainViewController touchesBegan:withEvent]、画面に触れるたびにカスタム スクロールの touchesBegan メソッドを実装したいと思います。 view が呼び出され、そのために vc の touchesBegan メソッドが呼び出されますが、それも役に立ちません。

また、VC へのスクロール ビューのアウトレットを作成し、それにタップ ジェスチャ認識エンジンを追加し、メソッドなどを使用して開始しました。これで開始したメソッドが呼び出されましたが、それは画面内でタッチアップした後でした。 、画面をタッチダウンするとすぐにメソッドが呼び出されるようにしたい

どんな答えでも大歓迎です!

4

2 に答える 2

3
  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
    
于 2012-11-05T04:44:00.390 に答える
0

これを行うために、独自のカスタムスクロールビュークラスを作成し、作成したデリゲートメソッドを使用してuiscrollビューにtouchesBegan:withEvent:メソッドを実装しました。

つまり、基本的には委任を使用する必要がありました。

于 2012-11-06T01:09:57.300 に答える