1

私はUIButtonを持っています。ユーザーがボタンをタップしたときに指の x 座標を取得するにはどうすればよいですか。touchesBegan が含まれると考えていますが、ボタンで「touchesBegan」が発生した場合にのみ値を取得するにはどうすればよいですか? また、方法がある場合 (ボタンの x、y、幅、高さを監視し、タッチがその領域にあるかどうかを確認するだけでなく)、ボタンのユーザー操作を無効にして、コードではなくボタンを処理できるようにする必要があります。 xibのものに組み込まれています。ありがとう!

4

1 に答える 1

9

「タップ」は、通常、ボタン内でのタッチダウンに続くボタン内でのタッチアップと見なされます。touch-down-inside イベントまたは touch-up-inside イベント (またはその両方) のどちらが必要かを判断する必要があります。

touch-down-inside イベントが必要だとしましょう。ビュー コントローラに次のようなメソッドを記述します。

- (IBAction)buttonWasTouched:(UIButton *)button forEvent:(UIEvent *)event {
    NSSet *touches = [event touchesForView:button];
    NSLog(@"button:%@ touches:%@", button, touches);
}

ペン先にボタンを作成している場合は、ボタンをコントロールクリックし、その「タッチダウン」アウトレットをbuttonWasTouched:forEvent:View Controller(おそらくファイルの所有者)のアクションに接続します。

コードでボタンを作成している場合は、 をボタンに送信しaddTarget:action:forControlEvents:て、そのUIControlEventTouchDownイベントをビュー コントローラーのbuttonWasTouched:forEvent:アクションに接続します。

touch-up-inside イベントをキャッチしたい場合は、その「Touch Up Inside」アウトレットをペン先に接続するかUIControlEventTouchUpInside、コードで使用します。

于 2012-03-04T18:47:37.910 に答える