[解決済み] IOS7 : UINavigationControllerにおけるUIScrollViewのオフセットについて
質問
現在ios7でアプリを移行中ですが、新しいnavigationcontroller/barの管理で何時間も立ち往生しています。
以前は、ナビゲーションコントローラーがあったとき、このようなスニペットがありました。
UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:[[MainViewController alloc]init]];
インターフェースビルダーでは、ビューに既存のナビゲーションバーを設定し、すべてを実際のビューのコンテンツと一致させるという選択肢がありました。
今、私はインターフェイスビルダーで適切にデザインする方法を全く知らないのです。 私はまだ私のnavcontrollerを初期化するためのスニペットを持っています。しかし、MainViewControllerのインターフェースビルダーで、ステータスバーを半透明または不透明なナビゲーションバーに設定すると、上部に44pxのオフセットがあります(下図参照)。
インターフェースビルダー______________________そして結果
現在、ステータス バーをなしに設定すると、上部にオフセットはありませんが、ナビゲーション バーのためにシミュレータ上のビューが小さくなるため、インターフェイス ビルダーでのビューの下部が切り取られています。
インターフェイスビルダーの結果
iOS7 の Transitions Guide には、この件に関するトピックやアップルの情報は見当たりません。
助けてくれてありがとうございます。
EDIT
写真でわかるように、ビューの最初の子は両方のラベルを含むUIScrollViewで、問題はスクロールビューがないときには表示されません。また、UITableViewである場合にも表示されます。 ラベルがUIScrollViewの外側にある場合、そのラベルへのオフセットはありません。
どのように解決するのですか?
私は解決策を見つけたので、私は私のコントローラにプロパティを設定しました。
self.automaticallyAdjustsScrollViewInsets = false
このプロパティの本当の利点がよくわからないのですが、(あるいはなぜデフォルト値がtrueなのか)。
私が見つけた唯一のドキュメントはそこにありました。
- https://web.archive.org/web/20160405135605/https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/AppearanceCustomization.html
- https://developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin
更新
iOS 11では
automaticallyAdjustsScrollViewInsets
は非推奨
を使うようになりました。
self.tableView.contentInsetAdjustmentBehavior = .never
また、ぜひ この質問 とその回答を確認し、これらのプロパティをよりよく理解することをお勧めします。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン