0

ビューの特定の領域でタッチイベントをキャンセルする方法はありますか?カスタムUIViewがあり、タッチイベントを処理したいのは、画面の端から100ピクセル離れている場合のみです。

4

2 に答える 2

1

Interface Builderを使用していると仮定すると、単に別のUIViewを使用します。サイズを変更し、タッチイベントを発生させたい場所に配置します。次に、カスタムビューをタッチアクティブにできるようにします。プログラム的に、私は個人的にそれを行う方法を知りません。

于 2012-05-14T23:34:12.170 に答える
1

Justinが言ったように、Interface Builderに(またはプログラムで)カスタムUIViewを追加し、それをビューに追加します。そのビューをtouchAreaと呼びましょう。次に、Viewcontroller.mファイルで、

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

メソッド(あなたがやろうとしていることに依存します)、そしてこれらの中で:

    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView:self.view];
if (CGRectContainsPoint(touchArea.frame, location)) {

//code to execute

}

実際には、ビューに配置されるインスタンス変数としてのCGRectでも機能すると思いますが、上記の方法で実現しました。

于 2012-05-15T00:08:40.780 に答える