5

でシンプルなデザインを作成しまし.xibた。アプリの展開ターゲットはiOS 5 です。シミュレーターまたはデバイスでアプリを実行すると、ビューのサイズが変更されません。

ここに私のファイルのスナップショットがあり.xibます..

シミュレーターでアプリを実行しようとすると、4 インチのシミュレーターでは正しく動作しますが、3.5 インチのシミュレーターでアプリを実行すると、サイズが変更されません。サブビューの自動サイズ変更プロパティがチェックされています。

これが私の のスナップショットですSimulaotrs。最初のスクリーンショットは 3.5 インチ用で、2 番目のスクリーンショットは 4 インチ用です。

前もって感謝します。

4

7 に答える 7

7

.xib ファイルの次の設定を使用してください (416 = 480 - 20 (ステータス バーの幅) - 44 (ナビゲーション バーの幅)) ここに画像の説明を入力

416 = 480 - 20 (ステータス バーの幅) - 44 (ナビゲーション バーの幅)

iPhone 5 の上部にアイコンが必要な場合は、アイコンの次の設定を使用します。 ここに画像の説明を入力 ここに画像の説明を入力

iPhone 5 の下部にアイコンが必要な場合は、アイコンの次の設定を使用します。 ここに画像の説明を入力 ここに画像の説明を入力

于 2013-04-09T19:33:28.953 に答える
3

.xibファイルの Autolayout オプションのチェックを外したかどうかを確認してください。ここに画像の説明を入力

于 2013-04-05T11:33:32.947 に答える
2

Ray WenderLich exampleから参照を取得できます。autoLayout の非常に簡単な説明と例を示します。間違いを犯しているすべての行について説明します。Autolayout を有効にしている場合は、View を選択しているときに左側に制約が表示される必要があります。

于 2013-04-11T05:36:37.307 に答える
2

ボタンのグリッドで実現したい同様の効果がありました。iOS 5 がサポートする自動サイズ変更では、単純にそれができないことがわかると思います。最後に、iOS 6 デバイス用と iOS 5 用の 2 つのストーリーボードがありました。その後、アプリ デリゲートは、メイン ビューconstraintsが UIView のメソッドに応答するかどうかを確認しました (これは、新しい iOS 6 制約ベースをサポートしているかどうかを示します)。レイアウト) を作成し、関連するストーリーボードをロードしました。

あなたの- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法でこのようなもの:

if (![self.window.rootViewController.view respondsToSelector:@selector(constraints)]) {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_BC_iPhone" bundle:nil];
    UITabBarController *rootController = [storyboard instantiateInitialViewController];
    [self.window setRootViewController:rootController];
}

iOS 6 ストーリーボードはデフォルトで読み込まれますが、必要に応じて下位互換性のあるストーリーボードで上書きされます。iPhone 5 は最小 iOS 6 のみを実行するため、下位互換性のある Storyboard は 3.5 インチ ディスプレイ用に手動で設定されます。したがって、下位互換性のある Storyboard は 4 インチ ディスプレイで実行する必要はありません。

下位互換性のある Storyboard のセットアップには、それほど時間はかかりませんでした。制約を使用する iOS 6 のものを複製し、3.5 インチ ディスプレイに設定し、制約をオフにして、ビューを修正するだけです。

別の方法として、画面のサイズに基づいてプログラムでアイコンをレイアウトすることもできます。これの利点は、任意の画面サイズに対応するように設計できることですが、欠点は、おそらくより多くの労力が必要になることです.

[編集] ストーリーボードではなく .xib を使用していることに注意しましたが、理論は同じです。UIView が応答するかどうかを確認し、constraintsそれに応じて適切な NIB (.xib) ファイルをロードします。

于 2013-04-09T09:21:33.397 に答える
2

解決策はとても簡単です。
スーパー ビューに UIVIew を追加し、次のようにすべてのアイコンを追加します (ナビゲーション コントローラーからタブ バーまでのビュー サイズに注意してください)。
ここに画像の説明を入力

このサブビュー(アイコンがあるもの)には、これらの自動サイズ変更マスクが必要です ここに画像の説明を入力

  • また、アイコンには同じ自動サイズ変更マスクが必要です。
于 2013-04-10T10:21:11.453 に答える