2017-02-05 5 views
1

だから、私はどのようにナビゲーションバーとスクロールビューが一緒に動作することができますの周りを頭を掴みようとしています。UIScrollviewとナビゲーションバーのコンテンツオフセットの問題

私は、ナビゲーションバーとスクロールビューを持つビューコントローラにラベルを貼り付けたときに、ナビゲーションバーの下にラベルを置く必要があるように見えるため、ナビゲーションバーによって隠される適切な量​​のオフセット。

ビューコントローラをクリックし、トップバーを[推測]から[なし]に変更し、ビューをそのように設定してから、ビューを設定した後にスイッチを設定すると、それは自動的にインタフェースビルダーのコンテンツをナビゲーションバーの下に移動し、すべての制約が正常に機能します。

スクロールビューとナビゲーションバーの設定方法がわからないのですが、それを誰にも変更せずにビューを修正するためにもう一度変更する必要はありませんか?

編集1:ラベルの上部をピン止めする場所と関係があります。トップレイアウトガイドに固定すると(ナビゲーションバーとステータスバーの調整が正常に行われた場合)私はコンテナビューの上にそれを固定すると、私はハードコードされたくない64ptsのセットを持っていますか?

Scroll View with Label

答えて

0

ナビゲーションバーは、コンテンツは、以下の例のように表示される半透明である場合、これはTranslucent のナビゲーションバープロパティに依存しています。これはTranslucentfalseに設定されている場合は、スクロールビューは、したがってにスクロールビューをプッシュするナビゲーションバーの背後にするために必要はありませんスクロールビューがナビゲーションバー

Translucent demo

の後ろに拡張する必要がありますナビゲーションバーの下に表示されます。

赤外線からnoneに変更すると、View Controllerは、Translucentプロパティに関係なく、ナビゲーションバーを画面上の通常の要素として使用します。

アップデート1:実装

私は私はあなたがスクロールビューでやりたいものを手に入れると思いますが、なぜコンテナを使うのか? imageViewsとLabelsを直接scrollViewに追加するだけではいかがですか?私はまた、これについて行く良い方法をお勧めします、なぜあなたは、ヘッダーとして、任意のセルなしでビューでtableViewControllerを使用しないでください。

enter image description here enter image description here

あなたは今、プログラム

viewDidLoad

​​でコード

にごcontainerViewからIBOutletを作成するコンテンツの固定サイズを設定したり、サイズを変更することができます

または

containerView.frame = CGRect(x: 0, y: 0, width: self.tableView.frame.width, height: 200) 

または

containerView.frame = CGRect(x: 0, y: 0, width: self.tableView.frame.width, height: self.tableView.frame.height * 2) 

ビューを設定へたいかによって異なります。私はこれがインタフェースビルダーを使ってscrollViewを処理する最も簡単な方法だと思う。

+0

ありがとうございます。どうすればインターフェイスを正しく設定することができますか?この時点で私はNav Barが継承されているView Controllerを持っていますが、Nav Barの下にあるView Controllerにスクロールビューを配置して、その下にコンテンツをスクロールして表示します。次に、スクロールビューに新しいビューを追加してコンテナビューとして使用し、画像とラベルをスクロールして追加することができます。このビューも全体のサイズを占めます。今では、ラベルを上に置きピンを固定して実行すると、シミュレータ上の間違った場所に表示されているように見えます(ナビゲーションバーの2倍を追加します) – Michael

+0

はオリジナルを更新しました。ラベルをピン止めしますか?そのトップアンカーがどんなものであるべきかわからない – Michael

関連する問題