0

問題を生成する手順

1) Xcode 5、OS X Mavericksで、iOS の「空のアプリケーション」を作成し、製品名を「empty_project」に設定し、組織名を「org_name」に設定し、会社識別子を「com.org_name」に設定し、クラス接頭辞を空のままにして、設定します。デバイスは"Universal"として、 "Use Core Data"のチェックを外します。[次へ]をクリックし、[作成]をクリックします。

2) [ビルド設定] ページで、プロジェクトと `empty_project ターゲットの両方にObjective-C Automatic Reference Countingasを設定します。NOempty_project

3) に移動しAppDelegate.m、その- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptionsメソッドを次のように変更します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];

    self.window.rootViewController = [[UIViewController new] autorelease];

    UIView* v1 = [[[UIView alloc] initWithFrame:CGRectMake(0, 20, 320, 568 - 20)] autorelease];
    v1.backgroundColor = [UIColor colorWithRed:1 green:.4 blue:1 alpha:1]; // pink color
    [self.window.rootViewController.view addSubview: v1];

    UIWebView* v2 = [[[UIWebView alloc] initWithFrame:CGRectMake(0, 45, 320, 568 - 20 - 45 - 49)] autorelease];
    v2.backgroundColor = [UIColor colorWithRed:.5 green:1 blue:0 alpha:1]; // light green color
    NSURL *urlToLoad = nil;
    urlToLoad = [NSURL URLWithString:[NSString stringWithFormat:@"http://stackoverflow.com/"]];
    NSURLRequest *requestOBj = [NSURLRequest requestWithURL:urlToLoad];
    [v2 loadRequest:requestOBj];
    [v1 addSubview:v2];

    return YES;
}

4) シミュレーターを実行して結果を確認します。上から下に、白い背景の 20 ポイントの高さのステータス バー、45 ポイントの高さのピンク色の余白 (ナビゲーション バーの高さを使用)、454 ポイントの高さの UIWebView ビュー (568 - 20 - 45 - 49 = 454 であるため) があります。 )、下部に 49 ポイントの高さのピンク色の余白 (タブ バーの高さを使用):

ここに画像の説明を入力

Web ページの最後までスクロールして、下の境界が期待どおりに設定されているかどうかを確認します。

ここに画像の説明を入力

5) シミュレーターを終了し、「参照の削除」を使用してImages.xcassetsフォルダーを削除します。

6) シミュレーターを再度実行して結果を確認します。レイアウトは次のように変更されます。

ステータスバーを下に移動しても、画面の上下に 2 つの黒い余白があります。

ここに画像の説明を入力

Web ページの最後までスクロールすると、末尾の部分が下の余白に隠されています。

ここに画像の説明を入力

7) シミュレーターを終了し、Images.xcassetsフォルダーを再度追加してから、シミュレーターを再度実行すると、元の正しいレイアウトが得られます。

討論

iOS 7 の自動レイアウトに関連する何かに触れたと思います。Xcode 4.6 で作成され、 Images.xcassetsフォルダーなしで現在 Xcode 5 で使用されている別のプロジェクトがあり、そのプロジェクトにもレイアウトの問題があります。 .

どうすればこの問題を解決できますか? 自動レイアウトなどをオフにする必要がありますか?

参照

Apple の自動レイアウト ガイド

4

1 に答える 1

1

4 インチの起動イメージを削除しました ( に保持されていImages.xcassetsます)。これは、Xcode で 3.5 インチ ディスプレイ専用のアプリをビルドするためのヒントです。

于 2013-10-31T10:10:09.147 に答える