質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1977閲覧

iOSでページング可能な画面でナビゲーションバーを引っ込ませる動作を実現する

退会済みユーザー

退会済みユーザー

総合スコア0

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2017/07/22 11:53

この問題だけで何十時間とハマっていてかなり苦しんでいます。

現在実装しようとしているのは、iOS開発において横スワイプでメニューを切り替えられる画面 + スクロールした時にナビゲーションバーを引っ込ませるという動作です。

ちょうど、はてなブックマークのアプリがその動作を実現してくれています。

イメージ説明

横スワイプでメニューを切り替えるのは既存のライブラリを使えば容易で、現在は以下のものを使用しています。

  1. PagingMenuController
  2. XLPagerTabStrip

さてここで問題になるのは、ページングの内側にある各ViewController内にあるUITableViewをスクロールした時にナビゲーションバーを引っ込ませるという動作がバグなく上手く実装できないということです。

ナビゲーションバーを引っ込ませるライブラリとして「AMScrollingNavBar」という有名なものがありますが、これを利用するとページ遷移時に上部に空白ができてしまったり、エッジスワイプで戻る時にナビゲーションバーの高さがおかしくなったりと、様々なバグが存在しています。

次にデフォルトのオプションで存在している、navigationControllerの「hidesBarsOnSwipe」をtrueにすることですが、これを利用するとナビゲーションバーが引っ込んだ時にエッジスワイプによる戻る動作が無効化されてしまうという問題があります。

単にそのページにおいてスクロールした時に引っ込ませること自体は問題ないのですが、エッジスワイプを有効化したり、ページ遷移やペ−ジバックしたりと、アプリケーションの動作を通じて違和感なく実装する方法が見つからないのが現状です。

もし同じような挙動のアプリを制作された方がいましたら、具体的にどのような実装を行ったのかご教授いただけないでしょうか。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

投稿2018/12/11 05:51

k0ma2

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問