我正在使用Auto Layout Visual Format Language并使用以下表达式:
它们在9和10中工作正常,但在iOS 8.1中我们注意到布局没有按预期工作。 视图获得了维度的两倍。
<UIWindow: frame = (0 0; 320 568);>
<UIView: frame = (0 0; 320 568);
适用于iOS 8.1
<UIWindow: frame = (0 0; 320 568);>
<UIView: frame = (0 0; 640 1136);>
我正在使用测试代码:
提前致谢
答案 0 :(得分:0)
此错误似乎是在您的应用委托中引起的,方法是初始化窗口并在有框架之前调用makeKeyAndVisible
。替换此行:
self.window = [UIWindow new];
在初始化时使用明确的框架:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
...然后删除设置窗口框架的冗余线。
或者,您可以在设置窗口框架后将呼叫移至makeKeyAndVisible
,即:
if (initViewController)
{
self.window = [UIWindow new];
self.window.rootViewController = initViewController;
self.window.frame = [[UIScreen mainScreen] bounds];
[self.window makeKeyAndVisible];
return YES;
}
无论哪种方式都应该有效。