2011-09-12 4 views
4

私はUIAlertViewの動作をシミュレートしようとしています。基本的に私はビューを提示し、スクリーン上の他のすべてのビュー(提示されたビュー以外)のユーザーインタラクションを無効にしたい。これをどうやってやりますか?1つ以外のすべてのビューのユーザー操作を無効にする

+0

を試しました\t self.view.superview.userInteractionEnabled = NO; – userar

答えて

10

あなたのふり警告ビューは2つのビューで構成されている必要があります。最初のサイズは画面のサイズで、userInteractionEnabledYESに設定されています。これにより、下のビューに通じるすべての接触が防止されます。次に、このビューのサブビューとして、あなたが好きなボタンなどを使って実際のアラートウィンドウを追加します。

UIWindowにこれらの両方を含めることができます。この場合、windowLevelをオンに設定して、画面上の他のものの上にあることを確認できます。

非常にわずかなbackgroundColorを画面サイズのビューに追加することもできます。このビューでは、インターフェイスに適している場合はその背後にあるすべてが暗くなります。

+0

完璧で簡単な解決策。それはタブとナビゲーションバーを「無効にする」こともできます:) thks – StinkyCat

0

ユーザーの操作を無効にするすべてのビューで[view setUserInteractionEnabled:NO]を呼び出します。カスタムアラートビューを閉じる前に、[view setUserInteractionEnabled:YES];を再度呼び出すことを忘れないでください。

1

カスタムアラートを表示するたびに、アプリケーションのメインウィンドウに0.3のアルファベットで黒い背景のビュー(ユーザーインタラクションは無効)を追加することをお勧めします。これは、ユーザーとのやり取りを妨げることに加えて、カスタムアラートビューの背後にあるUIに微妙な黒つぶれ効果を追加します。

関連する問題