2012-01-10 12 views
1

私は一連のカスタムモーダルダイアログビューを持つアプリケーションを持っています。モーダルでは、ユーザーがダイアログの横にあるアイテムとやりとりするのを防ぐ必要があります(たとえば、一時停止ダイアログが表示されたときに、ユーザーがボタンを押してアプリをナビゲートできるようにしたくない場合など)。それらをモーダルにするために、私は透明なUIViewを "対話"して、それぞれのダイアログビューをタッチします。これはうまくいきます。ただし、ダイアログボックスをフェードアウトさせ、ダイアログビューがタッチを無視してフェードしている間に、UIViewのアニメーションが表示されます。透明なUIViewのタッチをキャプチャ

私が問題と言うことができる限り、UIViewのアルファが1.0に等しくない場合、それはタッチを無視します。 UIViewにいくつかのアルファブレンディングが接触するようにする方法はありますか?

答えて

0

アルファが0.0でないか、または 'hidden'プロパティがYESに設定されていない限り、UIViewはタッチを無視しません。これらの設定はどちらもUIViewを非表示にします。

他のボタンを表示する理由がない限り、私はモーダルビューコントローラを使用することをお勧めします。透明なビューではなく、モーダルビューごとに個別のビューコントローラを設定します。次に、ビューコントローラの 'presentModalViewController:animated:'メソッドを使用してコントロールします。

モーダルビューコントローラはネストすることができます(別のビューコントローラを呼び出すことができる)ので、必要に応じて複数のチェーンを連動させることができます。

+0

私はダイアログのアニメーションを再現したテストプロジェクトを作成しましたが、実際にはビューは0アルファのタッチを無視するだけで、問題の内容がわかりません。残念ながら私は問題を解決しませんが、私の質問に答えます;) P.S. - モーダル・ビュー・コントローラーは、いくつかの理由でこれらのダイアログでは機能しませんでしたが、提案に感謝します。 – Mattia

0

ダイアログビューのアルファベットをアニメートしていて、ダイアログビューでアニメーション中のインタラクションをサポートする場合は、アニメーションを作成するときにUIViewAnimationOptionAllowUserInteractionオプションを使用する必要があります。

+0

チップをありがとう - 私はそのオプションについて知りませんでした。しかし、私の問題は、表示されている間にユーザーがダイアログとやりとりしないようにすることではなく、ダイアログが表示されている間に他のものと対話できないようにすることです。 – Mattia