2

ユーザー インタラクションをオフにする方法を教えてください。ビュー階層の最上位に数秒間表示されるカスタム ビューがあります。ビューの下にはいくつかのボタンがあります。問題は、ユーザーがビューをクリックしたときにボタンがタッチ イベントをキャッチすることです。myCustomView.userInteractionEnabled = NO; を設定しました。そして、何も起こりません。ボタンは、すべて同じようにビューを介してイベントをキャッチします。タッチをインターセプトできないビューを作成する方法は?

4

3 に答える 3

0

ボタンの一般的なスーパービューでユーザー操作を無効にすることができます。

someButton.superview.userInteractionEnabled = NO;

一部のオーバーレイUIが上にあるときにUIを無効にする別の方法は、既存のビューの上ではなく、独自のウィンドウにオーバーレイを配置することです。

于 2012-04-05T07:38:45.900 に答える
0

使用する:

[[UIApplication sharedApplication] beginIgnoringInteractionEvents]

ユーザーイベントを無視するため。数秒後にビューが消えたら、次を使用できます。

[[UIApplication sharedApplication] endIgnoringInteractionEvents]

このようにして、問題を解決できます。

于 2012-04-05T07:45:21.123 に答える
0

myCustomViewビュー階層の最上位にある場合は、他のビューを半透明に覆うオーバーレイ ビューのようなものを実装しようとしていると思います。この場合、userInteractionEnabled = NOこのビューを設定すると、タッチ イベントが下のビューに転送されます。

正しい方法はuserInteractionEnabled = YES、カスタム ビューに設定してから、透明なボタンを作成してタッチを却下 IBAction に再ルーティングするか、それを無視することです。

于 2012-04-05T07:42:55.910 に答える