1)在 Xcode 5,OS X Mavericks 中,创建iOS “空应用程序”,将产品名称设置为“empty_project”,将组织名称设置为“org_name”,将公司标识符设置为“com.org_name”,将“类别前缀”保留为空,将“设备”设置为“通用” ,取消选中“使用核心数据”。点击“下一步”,然后点击“创建”。
2)为Objective-C Automatic Reference Counting
项目和“Build”中的`empty_project目标设置 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磅高的粉红色边缘(使用标签栏高度):
向下滚动到网页末尾以查看底部边界是否按预期设置:
5)退出模拟器,使用“删除参考”删除 Images.xcassets 文件夹。
6)再次运行模拟器以查看结果。布局如下所示进行了更改:
屏幕顶部和底部有两个黑色边距,甚至状态栏也向下移动。
并滚动到网页的末尾,我们有一些隐藏在底部边缘的尾随部分:
7)退出模拟器并添加 Images.xcassets 文件夹,然后再次运行模拟器我们可以拥有原始正确的布局。
我想我已经触及了iOS 7中与自动布局相关的内容。我有另一个项目是在Xcode 4.6中创建的,现在以某种方式在Xcode 5中使用,没有 Images.xcassets 文件夹,该项目也有一些布局问题。
我该如何解决这个问题?我是否必须关闭自动布局?
答案 0 :(得分:1)
您已删除了一张4英寸的启动图片(它保存在Images.xcassets
中)。这是Xcode为仅3.5英寸显示器构建应用程序的暗示。