iOS 7 で実行しているアプリがあります。サポートしたいのは 6+ です。これは iOS 7 のスクリーンショットです。
展開ターゲットを 6.0 に変更したところ、画面上の配置がおかしくなりました。それはすべてを下にシフトしました。
どうすれば修正できますか?iOS のバージョンに応じて手動で配置を処理する必要がありますか? ところで、私は自動レイアウトを使用していません。
iOS 7 で実行しているアプリがあります。サポートしたいのは 6+ です。これは iOS 7 のスクリーンショットです。
展開ターゲットを 6.0 に変更したところ、画面上の配置がおかしくなりました。それはすべてを下にシフトしました。
どうすれば修正できますか?iOS のバージョンに応じて手動で配置を処理する必要がありますか? ところで、私は自動レイアウトを使用していません。
これらは iOS 7 UI の基本です。移行ドキュメントを読む必要があります。これは iOS 開発者にとって必須です (もちろんログインする必要があります)。
特に、WWDC の映画は必見です。
iOS 7 のユーザー インターフェイスの構築 (ビデオ番号 201)
iOS 7 用にアプリの外観をカスタマイズする (ビデオ番号 214)
iTunesで無料で見つけることができます。
あなたの質問について:
問題を引き起こすのは、新しい iOS 7 のアプローチです。iOS 7 では、ナビゲーション バーはデフォルトで半透明になっています。iOS 6 ではそうではありません。半透明の場合 - 原点 {0,0} は navBar のすぐ下です。したがって、最初のケースでそのようなオリジンを持つ UIView がナビゲーション バーの下にある場合、2 番目のケースでは次のようになります。半透明のおかげで、その下にあるすべてのものをきれいにぼかすという新しい iOS 7 のアプローチに気づくことさえできます。
それを修正するには、使用します
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
// Load resources for iOS 6.1 or earlier
} else {
// Load resources for iOS 7 or later
}
さまざまな場合に原点を変更するなど、適切なコードフォーマットを実行します。
それは非常によく説明されており、やみくもに開発するだけでなく、自分が何をしているのかを理解したい場合は、ドキュメントやビデオに非常に多くの重要な更新があるため、実際にチェックする必要があります。
バックアップまたはコピーを作成する
「View as」プロパティを 7.0 以降から iOS 6.1 以前に戻します。
元に戻すと、iOS7 の以前の設定はすべて失われることに注意してください。
すべてが少し下になるので、x 座標をすべてのサブビューに再配置します。
(iOS7 ではデフォルトの x=0 座標はナビゲーションとステータス バーの下にあり、iOS7 より前ではナビゲーション バーまたはステータス バーのすぐ上から始まるため)
viewDidLoad に次の行を追加します。
if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) [self setEdgesForExtendedLayout:UIRectEdgeNone];
試しましたか
self.edgesForExtendedLayout=UIRectEdgeNone;
試す
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
// here you go with iOS 7
self.edgesForExtendedLayout=UIRectEdgeNone;
}