2012-04-30 7 views
0

私はアプリケーションで作業しており、アプリ内ブラウザでフルスクリーンモードを提供するためにUINavigationBar(およびツールバー)を非表示にする必要があります。デフォルトのiOS UINavigationBarアニメーションが滑らかではありません

このコードを実行すると、アニメーションは正常に機能します。

[self.navigationController setNavigationBarHidden:YES animated:YES]; 
[self.navigationController setToolbarHidden:YES animated:YES]; 

フルスクリーンモードを終了したいとき、アニメーションが滑らかではありません。

[self.navigationController setNavigationBarHidden:NO animated:YES]; 
[self.navigationController setToolbarHidden:NO animated:YES]; 

アニメーションの間に黒い長方形は、ナビゲーションバーの下に表示されて、私はそれが自分自身のサイズを変更するのUIWebViewだと思います(うまくツールバーのアニメーション作品。)

私はこの問題を解決する方法上の任意のアイデア問題?代わりに、ナビゲーションバーを隠すためsetNavigationBarHidden:animated:を使用しての

+0

この問題を解決したことがありますか? –

+0

@nessup nope、まだありません。 – Francesco

答えて

1

、これを試してください:あなたのビューコントローラのviewDidLoadコンピューティングの異なるフレームで

をあなたのナビゲーションバーとビューのために:あなたはフルスクリーンに行きたい

// The normal navigation bar frame, i.e. fully visible 
normalNavBarFrame = self.navigationController.navigationBar.frame; 

// The frame of the hidden navigation bar (moved up by its height) 
hiddenNavBarFrame = normalNavBarFrame; 
hiddenNavBarFrame.origin.y -= CGRectGetHeight(normalNavBarFrame); 

// The frame of your view as specified in the nib file 
normalViewFrame = self.view.frame; 

// The frame of your view moved up by the height of the navigation bar 
// and increased in height by the same amount 
fullViewFrame = normalViewFrame; 
fullViewFrame.origin.y -= CGRectGetHeight(normalNavBarFrame); 
fullViewFrame.size.height += CGRectGetHeight(normalNavBarFrame); 

[UIView animateWithDuration:0.3 
        animations:^{ 
         self.navigationController.navigationBar.frame = hiddenNavBarFrame; 
         self.view.frame = fullViewFrame; 
        } completion:^(BOOL finished) { 

        }]; 

あなたが通常の状態に戻したい:

[UIView animateWithDuration:0.3 
        animations:^{ 
         self.navigationController.navigationBar.frame = normalNavBarFrame; 
         self.view.frame = normalViewFrame; 
        } completion:^(BOOL finished) { 

        }]; 

iOS 5.1エミュレータでこれをテストしました。あなたはそれを使用することを願っています。 「黒い四角形」は、ウィンドウのデフォルトの背景色、つまりナビゲーションバーとビューの間のギャップでなければなりません。

関連する問題