[解決済み] iOS 7でステータスバーとナビゲーションバーがビューの境界を越えて表示される
質問
最近ダウンロードした Xcode 5 DP は、iOS 7 で自分のアプリをテストするために使用します。最初に気づいて確認したのは、ステータスバーとナビゲーションバーを考慮して、ビューの境界が常にリサイズされていないことです。
で
viewDidLayoutSubviews
ビューの境界を表示します。
{{0, 0}, {320, 568}}
この結果、私のコンテンツはナビゲーションバーとステータスバーの下に表示されることになります。
メイン画面の高さからステータスバーの高さとナビゲーションバーの高さを引いて、自分で高さを計算することもできるのですが、余計な手間がかかるような気がしています。
どうすればこの問題を解決できますか?
更新してください。
この特定の問題に対する解決策を見つけました。ナビゲーションバーの半透明のプロパティをNOに設定します。
self.navigationController.navigationBar.translucent = NO;
これにより、ナビゲーションバーとステータスバーの下に枠で囲まれたビューが修正されます。
しかし、ナビゲーションバーを半透明にしたい場合の修正方法は見つかっていません。例えば、写真を全画面表示するとき、ナビゲーションバーを半透明にして、その下に枠を付けて表示させたいのです。しかし、ナビゲーションバーの表示/非表示を切り替えると、さらに奇妙な結果になります。最初のサブビュー(UIScrollView)は、その境界のy原点が毎回変更されます。
解決するには?
という新しいプロパティを実装することで、これを実現できます。
edgesForExtendedLayout
をiOS7 SDKに追加しました。これを実現するために、以下のコードを追加してください。
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout = UIRectEdgeNone;
上記を
-(void)viewDidLoad
メソッドを使用します。
iOS 7 では、レイアウトやカスタマイズの方法にいくつかの変更が加えられています。 の外観を変更することができます。 UI . ビューコントローラのレイアウト、色合い の色とフォントは、すべての UIKit オブジェクトを作成します。また また、ジェスチャー認識APIが強化されたことで、よりきめ細かい対応が可能になりました。 ジェスチャーのインタラクションを細かく制御することができます。
ビューコントローラの使用
iOS 7 では、ビューコントローラーはフルスクリーンレイアウトを使用します。同時に iOS 7 では、ビューコントローラの制御方法をより細かく設定できます。 はそのビューをレイアウトします。特に、フルスクリーンレイアウトのコンセプトは が改良され、ビューコントローラがそれぞれのレイアウトを指定できるようになりました。 の端にある。
は
wantsFullScreenLayout
ビューコントローラのプロパティは非推奨です。 iOS 7. 現在wantsFullScreenLayout = NO
の場合、ビュー コントローラは、そのコンテンツを予期しない画面の場所に表示することがあります。 をiOS 7で実行した場合。ビューコントローラのビューのレイアウトを調整する。
UIViewController
には、以下のプロパティがあります。
- edgesForExtendedLayout
は
edgesForExtendedLayout
プロパティはUIRectEdge
という型があります。 は、矩形の4つの辺をそれぞれ指定する。 は、noneとallを指定する。使用方法edgesForExtendedLayout
を指定します。 の端は、バーの半透明に関係なく、拡張されます。このため デフォルトでは、このプロパティの値はUIRectEdgeAll
.
- extendedLayoutIncludesOpaqueBars
不透明なバーを使用する場合は、次のように改良します。
edgesForExtendedLayout
で を設定します。extendedLayoutIncludesOpaqueBars
プロパティに NO . (のデフォルト値はextendedLayoutIncludesOpaqueBars
は NO .)
- 自動的に調整するScrollViewInsets
スクロールビューのコンテンツのインセットを自動的に行わない場合は を設定します。
automaticallyAdjustsScrollViewInsets
に変更します。 NO . (この のデフォルト値はautomaticallyAdjustsScrollViewInsets
は はい .)
- topLayoutGuide, bottomLayoutGuide
は
topLayoutGuide
とbottomLayoutGuide
プロパティは ビューコントローラのビューにおけるバーの上端あるいは下端の位置。 バーがビューの上部または下部に重なる必要がある場合は Interface Builderでは、バーに対してビューを相対的に配置するために の下部への制約があります。topLayoutGuide
または bottomLayoutGuideです。(どのバーもビューに重ならないようにする場合、底部のtopLayoutGuide
はビューの上端と同じであり、その上端はbottomLayoutGuide
はビューの下部と同じです)。どちらも プロパティが要求されると、遅延して作成されます。
参考にしてください。 アップルドキュメント
関連
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] テキストフィールドを移動する方法(次へボタン/完了ボタン)
-
[解決済み] Swiftで配列に要素を追加する
-
[解決済み] Cocoapods警告 - CocoaPodsがプロジェクトの基本構成を設定しなかった理由は、プロジェクトに既にカスタム構成が設定されているためです。
-
[解決済み】iOS 7: UITableViewがステータスバーの下に表示される
-
[解決済み】layoutSubviewsはいつ呼び出されるのですか?
-
[解決済み] UIImagePickerControllerがステータスバーの外観を壊す
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
JenkinsがIOSを自動パッケージングしてモミを配布
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] Unwind segueは何に使うのか、どう使うのか?
-
[解決済み] UITextViewのサイズをコンテンツに合わせるには?
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] Swiftの配列を文字列に変換するには?