0

私は現在iOS 6アプリに取り組んでいます。このアプリケーションを iPhone 4/5 で実行すると、問題なく動作します。唯一の問題は、新しい iOS 7 が登場すると、デザインが台無しになることです。ステータス バーがアプリの一部になり、アプリケーションのすべてのビューが一番上にプッシュされ、ステータス バーと重なっています。

この問題を解決するための最善の解決策は何ですか? UINavigationController といくつかのカスタム ビューを使用しています。上部のビューは黒くて空になるため、iOS 6の「ステータスバー」のようなものを作成するためにカスタムコンテナビューを含めることを提案する人もいます。これに対する他の解決策はありますか?または、iOS 6 と 7 の両方のデザインをサポートするようにアプリを修正する正しい方法はありますか?

4

3 に答える 3

1

次のことを可能にする 1 つのソリューション:

  • 展開対象として iOS6 と iOS7 の両方をサポートします。
  • 既存の iOS6 スタイルのコードを保持し、再設計の影響を延期します

. . . View Controllerに以下を追加することです:

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7"))
{
    self.edgesForExtendedLayout = UIRectEdgeNone;
}

. . コードベースのビューを使用しているため、loadView に追加しますが、viewDidLoad でも機能します

于 2013-09-26T09:12:53.987 に答える
1

これには最も簡単な解決策があります。このコンセプトを提供してくれたアップルに感謝しなければなりません。

以下のソリューションを確認してください

  1. まず、ストーリーボード/xib で、Utility Inspector ウィンドウの 4 番目のタブから画面サイズを 4" に変更します。
  2. 設計に従って uicontrols を配置します (つまり、ステータスバーの下でフレーミングを開始します)。
  3. Utility Inspectorウィンドウの5番目のタブに移動します
  4. 各コントロールにはフレームが必要です
  5. フレームの下に目を向けると、iOS6/7 のデルタが見えます
  6. DeltaY フィールドで、各コントロールの 20 ピクセルを減らします。つまり、デルタ Y フィールドに -20 を入力します。
  7. したがって、iOS7 と 6 の両方でプロジェクトを実行すると、必要なものが得られます。

注: デルタを使用するには、[自動レイアウトを使用] のチェックを外す必要があります。

プログラミングを楽しもう!!

Y 位置のチェックアウト デルタ値

于 2013-09-26T08:46:50.340 に答える