Help us understand the problem. What is going on with this article?

【Xcode】スワイプページの上部がずれる場合は「Under Top Bar」のチェックを外す

More than 5 years have passed since last update.

状況

RootViewController->DataViewControllerのスワイプページで、上にナビゲーションを付けた。
Navigation
 |- RootView
  |- DataView

b5ed5975efa0dfaf3429fb63ae5bf450.png

RootViewが、スライダーの"台"的部分、DataViewが"個々のスライド"のコントローラ。両者がModelControllerを介してつながっている。更にNavigationControllerがRootViewControllerとつながっている。
Navigationは上部にページタイトル「スライダー」を表示させているのみ。

これはXcodeで新規プロジェクト作成時に「Page Based Application」を選択して作られるやつのほぼそのまま。
ダイアログ

現象

シミュレータ実行すると、初期表示画面をタップしたらナビゲーションの幅分画面が上にずれる。
ずれる
↑スライドした後も青枠のヘッダーを表示させたいのだが、初回のタップで消えてしまう。

解決策

Xcode上で、RootViewController - AttributeInspector - ViewController - Extend Edgesで「Under Top Bar」のチェックを外す。
889d2249bf35977ff85f53b40c684904.png

青枠が表示され続けるようになりました。
ずれない

ソース

こちらに置きました。
https://github.com/hanoopy/SliderSample

その他

  • Xcodeでやらなくてもソースでできると思う。
  • 画像は写真ACから使わせてもらいました。 http://www.photo-ac.com/
hanoopy
PHPプログラマー。 iPhone開発勉強中。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away