ナビゲーションバーの表示/非表示 質問する

ナビゲーションバーの表示/非表示 質問する

2 つのバー ボタンで構成されるナビゲーション バーを備えたアプリがあります。ユーザーが画面をダブルタップしたときに、このナビゲーション バーを非表示または表示したいと思います。

最初は、ナビゲーション バーは非表示になっている必要があります。ユーザーが画面をダブルタップすると、iPhone の写真ギャラリーで見られるようなアニメーションとともにナビゲーション バーが表示されます。

これをどうやったら実現できるでしょうか? ご提案はいつでも歓迎します。

ベストアンサー1

これは数行のコードに収まるものではありませんが、これはあなたにとって有効な方法の 1 つです。

ナビゲーション バーを非表示にするには:

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

それを表示するには:

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

この方法のドキュメントはこちらから入手可能

「ダブルクリック」またはダブルタップをリッスンするには、サブクラスを作成UIViewし、そのサブクラスのインスタンスをビュー コントローラーのviewプロパティにします。

ビューのサブクラスで、-touchesEnded:withEvent:連続した2回のタップ間の時間を測定して、一定時間内に何回タッチされたかを数える方法。CACurrentMediaTime()または、結果をテストします[touch tapCount]

2回のタップがあった場合、サブクラス化されたビューはNSNotificationビュー コントローラがリッスンするように登録したものです。

ビューコントローラが通知を聞くと、ナビゲーションバーの現在の表示状態に応じて、前述のコードを使用してナビゲーションバーを非表示または表示するセレクタを起動します。ナビゲーションバーの現在の表示状態は、ナビゲーションバーの読み取りによってアクセスされます。isHidden財産。

編集

タップイベントの処理に関する私の回答の部分は、iOS 3.1以前ではおそらく役立つでしょう。UIGestureRecognizer最近では、ダブルタップを処理するには、おそらくクラスの方がよいアプローチです。

編集2

ナビゲーション バーを非表示にする Swift の方法は次のとおりです。

navigationController?.setNavigationBarHidden(true, animated: true)

それを表示するには:

navigationController?.setNavigationBarHidden(false, animated: true)

おすすめ記事