自动布局在 iOS 8.1 上损坏

Auto Layout broken on iOS 8.1

我正在使用自动布局视觉格式语言并使用以下表达式:

它们在 9 和 10 中工作正常,但在 iOS 8.1 中我们注意到布局没有按预期工作。 视图正在获得两倍的尺寸。

我使用的测试代码:

提前致谢

这个错误似乎是在您的应用委托中引起的,原因是初始化 window 并在它具有框架之前调用 makeKeyAndVisible。替换此行:

self.window = [UIWindow new];

在初始化时有明确的框架:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

...然后删除设置 window 框架的冗余行。 或者,您可以在设置 window 的框架后将调用移至 makeKeyAndVisible,即:

if (initViewController)
{
    self.window = [UIWindow new];
    self.window.rootViewController = initViewController;
    self.window.frame = [[UIScreen mainScreen] bounds];
    [self.window makeKeyAndVisible];

    return YES;
}

任何一种方法都应该有效。