2011-01-24 7 views
0

iPadのモーダルビュー内にカプセル化されたビューのサイズに、プログラムでどのようにアクセスできますか?Ipadのモーダルビュー上にサブビューを挿入

UIModalPresentationFormSheet列挙体を使用してIpadにモーダルビューを表示しています。ある時点で、アクションが発生するまでモーダルシート全体にアクティビティインジケータビューを一時的に表示したいと思います。私が抱えている問題は、ビューコントローラのビューのフレームでこの待機インジケータビューを初期化していることです。何らかの理由で、そのフレームは(0,0,320,460)として常に表示されます。これはiPhone、iPad上では問題ありませんが、モーダルフォームシートはそれより明らかに大きいので、私のアクティビティインジケータは画面の一部を覆っています。どのようにモーダルフォームシートを埋めるためのアイデア?

ありがとうございました。

+0

view.frameではなくview.boundsを試してください – Felix

答えて

1

私はこれを行うための最良の方法は、あなたのビューコントローラのxibのアクティビティインジケータを追加することだと思います。私はこれを前にやっているし、それは私のためにうまくいく。

1)xibのビュー全体にビューを追加するだけです。

2)背景色を黒で約20%不透明にします。それはあなたに影のあるオーバーレイを与えるでしょう。

3)Interface Builderの3番目のタブには、自動サイズ情報が表示されます。すべてのストラットとスプリングをオンにします(6本の線がすべて赤くなっていることを確認してください)。これにより、ポップオーバーがどのようなサイズになっても、ポップオーバー全体を満たすためにビューがサイズ変更されます。

4)アクティビティインジケータをそのオーバーレイビューに追加します。 3番目のタブの配置セクションでは、これらのボタンを使用して水平方向と垂直方向の中央に配置します。

5)アクティビティインジケータの場合は、ストラットとスプリングのすべてをオフにします。つまり、サイズは変更されませんが、常にビューの中央に浮かびます。

6)IBOutletをビューコントローラのオーバーレイビューに追加し、xibに貼り付けます。

7)必要なデータをロードしてアクティビティインジケータを削除する場合は、オーバーレイビューを非表示に設定して、それを完全にポップオーバーのビューから削除します。

関連する問題