1

iPadの写真アプリとまったく同じ効果を実現したいと思います。ギャラリーコントローラーの間に黒一色のナビゲーションバーが表示され、写真を表示すると透明になります。

AppDelegateでナビゲーションコントローラーを初期化した後、以下のコードを使用してスタイルを変更できますが、AppDelegateの外部では変更できません。ただし、ナビゲーションコントローラが画面に表示され、一度設定されると、navigationBarは読み取り専用プロパティになります。

誰かがこれがどのように行われるかを共有できれば幸いです。ありがとう。

    self.navigationController.navigationBar.tintColor = [UIColor clearColor];
    self.navigationController.navigationBar.translucent = YES;
    self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
4

2 に答える 2

1

のUINavigationBarUIBarStyleBlackTranslucent barStyleは、他のスタイルで通常行われているように、その場所を修正しません。スタイルではUIBarStyleBlackTranslucent、ビューに重なるだけで、ビューのコンテンツが上に翻訳され、view高さも増加します。

写真を表示している場合は、最初にナビゲーションバーを非表示にします。

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

次に、navBarのスタイルをに設定しますUIBarStyleBlackTranslucent

[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];

次に、画像ビューを表示します(または、画像付きのスクロールビュー-ロジックによって異なります)。次に、imageviewをタップすると、バーを表示および非表示にできます)

 // Show/Hide bar
 // Let say you've a bool 'shown' for current status of navbar's visibility.
if (!shown) {
    [[self navigationController] setNavigationBarHidden:YES animated:YES];
}else{
     [[self navigationController] setNavigationBarHidden:NO animated:YES];
}
shown = !shown;

これがそれをすることを願っています。ギャラリーを終了したら、barStyleをUIBarStyleBlackOpaqueに再設定することを忘れないでください。

于 2012-11-29T15:31:17.273 に答える
1

ギャラリーにナビゲーションバーを表示したいので、何も変更する必要はありませんが、写真を選択した後、ナビゲーションバーを PhotoViewController に隠しておきます。

-(void) viewDidLoad
 {
  self.navigationController.navigationBar.barStyle=UIBarStyleBlackTranslucent;
  self.navigationController.navigationBar.hidden = NO;
 }

そしてViewWillAppearで

-(void) viewWillAppear 
 {
  self.navigationController.navigationBar.hidden = YES;
 }

次に、UITapGestureRecognizer を実装するカスタム メソッドを作成します。このメソッドでは、hidden プロパティを YES に設定して、1 回のタップでナビゲーション バーを表示します。

于 2012-11-29T17:18:08.973 に答える