##この記事について
UINavigationBarを消す方法を調べていたところ、scrollViewにdelegateを設定する方法や、ライブラリを使う方法などがありましたが、新しい方法を見つけましたので共有します。
iOS8からUINavigationControllerに便利なプロパティが追加されたようです。
##方法
navigationController?.hidesBarsOnSwipe = true
これだけ
##詳細
他にも色々な挙動でUINavigationBarを制御できるようです
- hidesBarsOnTap
/// When the user taps, the navigation controller's navigationBar & toolbar will be hidden or shown, depending on the hidden state of the navigationBar. The toolbar will only be shown if it has items to display.
@available(iOS 8.0, *)
public var hidesBarsOnTap: Bool
- hidesBarsOnSwipe
/// When the user swipes, the navigation controller's navigationBar & toolbar will be hidden (on a swipe up) or shown (on a swipe down). The toolbar only participates if it has items.
@available(iOS 8.0, *)
public var hidesBarsOnSwipe: Bool
- hidesBarsWhenVerticallyCompact
/// When the UINavigationController's vertical size class is compact, hide the UINavigationBar and UIToolbar. Unhandled taps in the regions that would normally be occupied by these bars will reveal the bars.
@available(iOS 8.0, *)
public var hidesBarsWhenVerticallyCompact: Bool
- hidesBarsWhenKeyboardAppears
/// When the keyboard appears, the navigation controller's navigationBar toolbar will be hidden. The bars will remain hidden when the keyboard dismisses, but a tap in the content area will show them.
@available(iOS 8.0, *)
public var hidesBarsWhenKeyboardAppears: Bool
- navigationBarHidden
public var navigationBarHidden: Bool
- barHideOnTapGestureRecognizer
/// The gesture recognizer used to recognize if the bars will hide or show due to a tap in content. Do not change the delegate or attempt to replace this gesture by overriding this method.
@available(iOS 8.0, *)
unowned(unsafe) public var barHideOnTapGestureRecognizer: UITapGestureRecognizer { get }
- barHideOnSwipeGestureRecognizer
/// The gesture recognizer that triggers if the bars will hide or show due to a swipe. Do not change the delegate or attempt to replace this gesture by overriding this method.
@available(iOS 8.0, *)
public var barHideOnSwipeGestureRecognizer: UIPanGestureRecognizer { get }
Hiding the Navigation Bar @ Apple公式ドキュメント - UINavigationController Class Reference