0

iOS 7 で実行しているアプリがあります。サポートしたいのは 6+ です。これは iOS 7 のスクリーンショットです。iOS 7 のスクリーンショット

展開ターゲットを 6.0 に変更したところ、画面上の配置がおかしくなりました。それはすべてを下にシフトしました。iOS 6 スクリーンショット

どうすれば修正できますか?iOS のバージョンに応じて手動で配置を処理する必要がありますか? ところで、私は自動レイアウトを使用していません。

4

4 に答える 4

1

これらは iOS 7 UI の基本です。移行ドキュメントを読む必要があります。これは iOS 開発者にとって必須です (もちろんログインする必要があります)。

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TransitionGuide/index.html#//apple_ref/doc/uid/TP40013174

特に、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
}

さまざまな場合に原点を変更するなど、適切なコードフォーマットを実行します。

それは非常によく説明されており、やみくもに開発するだけでなく、自分が何をしているのかを理解したい場合は、ドキュメントやビデオに非常に多くの重要な更新があるため、実際にチェックする必要があります。

于 2013-10-31T12:16:21.693 に答える
0
  1. バックアップまたはコピーを作成する

  2. 「View as」プロパティを 7.0 以降から iOS 6.1 以前に戻します。 ファイル インスペクタ / Interface Builder ドキュメント
    元に戻すと、iOS7 の以前の設定はすべて失われることに注意してください。

  3. すべてが少し下になるので、x 座標をすべてのサブビューに再配置します。
    (iOS7 ではデフォルトの x=0 座標はナビゲーションとステータス バーの下にあり、iOS7 より前ではナビゲーション バーまたはステータス バーのすぐ上から始まるため)

  4. viewDidLoad に次の行を追加します。

    if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) [self setEdgesForExtendedLayout:UIRectEdgeNone];
    
于 2013-10-31T13:36:02.120 に答える
-2

試しましたか

self.edgesForExtendedLayout=UIRectEdgeNone;

試す

 if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
     // here you go with iOS 7
     self.edgesForExtendedLayout=UIRectEdgeNone;
 }
于 2013-10-31T12:16:29.700 に答える