問題を生成する手順
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 Counting
asを設定します。NO
empty_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 で使用されている別のプロジェクトがあり、そのプロジェクトにもレイアウトの問題があります。 .
どうすればこの問題を解決できますか? 自動レイアウトなどをオフにする必要がありますか?