8
iOS7では、スクロールするとSafariのナビゲーションバーが自動的に縮小します。 Facebook内のナビゲーションバーも完全に消えてしまっています。iOS 7を真似Safari Nav-Bar
この動作を自分でどのように実装しますか? 私はcontentOffsetを動的に調整しなければならないと思います。また、デフォルトのリフレッシュコントロールと衝突すると思いますか?
iOS7では、スクロールするとSafariのナビゲーションバーが自動的に縮小します。 Facebook内のナビゲーションバーも完全に消えてしまっています。iOS 7を真似Safari Nav-Bar
この動作を自分でどのように実装しますか? 私はcontentOffsetを動的に調整しなければならないと思います。また、デフォルトのリフレッシュコントロールと衝突すると思いますか?
これはこれを行う正しい方法ではありませんが、それは私のために働いた。私はこのようにそこUINavigationBar
とオーバーライドsizeThatFits:
にカテゴリを作成しました:
- (CGSize)sizeThatFits:(CGSize)size
{
CGSize cSize = self.frame.size;
BOOL isPortrait = UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]);
CGFloat originalHeight = isPortrait ? 44: 32;
cSize.height = self.tag > 0 ? originalHeight/2 : originalHeight;
return cSize;
}
それから私は(スクロールビューのデリゲートメソッドで)ナビゲーションバーを縮小する必要がある場合:
CGRect navBarFrame = self.navigationController.navigationBar.frame;
BOOL isPortrait = UIInterfaceOrientationIsPortrait(self.interfaceOrientation);
CGFloat originalHeight = isPortrait ? 44: 32;
navBarFrame.size.height = expand ? originalHeight : originalHeight/2;
self.navigationController.navigationBar.tag = expand ? 0 : 1;
[UIView animateWithDuration:0.25 animations:^{
self.navigationController.navigationBar.frame = navBarFrame;
[self.navigationController.view setNeedsLayout];
}
また、あなたがナビゲーションを非表示にすることアニメーション内のアイテム(UIBarButtonItemsなど)
アップル社の社内フォーラムで質問してください。他の人が確かに興味を持っているので、あなた自身の質問に答えてください。 –
また、この回答を見てください - バーを開いたり閉じたりする方法をアニメーション:http://stackoverflow.com/a/2079655/1633251 –
@DavidHは残念ながら私を助けません。私は一度にナビゲーションバーを隠したくない、人々がスクロールしている間にどれだけスクロールしているのかに応じて変更したい。 – Infinite