iOS 7 をサポートするために、カスタムの「iAD バナー コントローラー」を更新しています。基本的にはUIViewController
、3 つのビューで構成されるコンテナーです。
- メイン ビュー (含まれているコントローラーのビュー)
- バナービュー
- ステータス バーの背景ビュー
AD が使用可能な場合、バナー ビューとステータス バーの背景ビューが上からスライドして表示されるようにアニメーション化されたトランジションがあります。これはすべて autolayout を使用して管理され、次のように表示されます (ステータス バーの背景は緑色で、この場合は が含まれていますUINavigationController
)。
問題は次のとおりです。含まれているコントローラーとして UINavigationController を使用すると、バナーが表示されない場合、nav コントローラーがステータス バーの下に 20px 拡張されます。これは問題ありません。しかし、スーパービュー (コンテナー) を下に移動して iAD バナーを表示すると、20px の拡張子がそこに残り、次の結果が得られます。
ただし、インターフェイスを回転させるなどの操作を行うと、ナビゲーション コントローラーはステータス バーが「遠い」ことを検出し、それ自体を調整します。
結果なしで、コントローラーとそのビューでそれぞれ呼び出そうとしsetNeedsStatusBarAppearanceUpdate
ました。layoutIfNeeded
ご覧になりたい場合は、プロジェクト全体を添付します:プロジェクトへのリンク