0

产生问题的步骤

1) 在Xcode 5, OS X Mavericks中,创建一个 iOS "Empty Application",将 Product Name 设置为"empty_project",将 Organization Name 设置为"org_name",将 Company Identifier 设置为"com.org_name",将 Class Prefix 留空,设置设备为“通用”,取消选中“使用核心数据”。单击“下一步”,然后单击“创建”

2)在“构建设置”页面中为项目和`empty_project目标设置as Objective-C Automatic Reference CountingNOempty_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 点高的粉色边距(使用标签栏高度):

在此处输入图像描述

向下滚动到网页末尾,查看底部边界是否按预期设置:

在此处输入图像描述

5) 退出模拟器,使用“Remove Reference”删除Images.xcassets文件夹。

6) 再次运行模拟器查看结果。布局更改如下所示:

屏幕顶部和底部有两个黑边,甚至状态栏也向下移动。

在此处输入图像描述

并滚动到网页的末尾,我们有一些尾随部分隐藏在底部边缘:

在此处输入图像描述

7)退出模拟器并添加回Images.xcassets文件夹,然后再次运行模拟器,我们可以得到原始正确的布局。

讨论

我想我已经触及了与 iOS 7 中的 Auto Layout 相关的内容。我有另一个项目是在 Xcode 4.6 中创建的,现在不知何故在 Xcode 5 中使用,没有Images.xcassets文件夹,并且该项目中也存在一些布局问题.

我怎么解决这个问题?我是否必须关闭自动布局或其他东西?

参考

Apple 的自动布局指南

4

1 回答 1

1

您删除了一个 4 英寸的启动图像(它保存在 中Images.xcassets)。这是 Xcode 为 3.5 英寸显示器构建应用程序的提示。

于 2013-10-31T10:10:09.147 回答