Ios8 在iOS 8中,通过autoresizingMask将UIView与父视图的中心对齐

Ios8 在iOS 8中,通过autoresizingMask将UIView与父视图的中心对齐,ios8,autoresizingmask,Ios8,Autoresizingmask,我有一个应用程序没有使用自动布局。相反,我使用的是自动重设网格。它在iOS 7中运行良好。在iOS 8中,当我以纵向模式启动应用程序时,它也可以正常工作(即使之后我旋转设备,它仍然可以正常工作)。以下是正确的屏幕截图: 以下是我的源代码: CGFloat w = [[UIScreen mainScreen]bounds].size.width; CGFloat h = 100; CGRect rect1 = CGRectMake(0, 0, w, h); UIView* view1 = [[

我有一个应用程序没有使用自动布局。相反,我使用的是自动重设网格。它在iOS 7中运行良好。在iOS 8中,当我以纵向模式启动应用程序时,它也可以正常工作(即使之后我旋转设备,它仍然可以正常工作)。以下是正确的屏幕截图:

以下是我的源代码:

CGFloat w = [[UIScreen mainScreen]bounds].size.width;
CGFloat h = 100;
CGRect rect1 = CGRectMake(0, 0, w, h);

UIView* view1 = [[UIView alloc] initWithFrame:rect1];
view1.backgroundColor = [UIColor yellowColor];
view1.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self.view addSubview:view1];

CGRect rect2 = CGRectMake(10, 105, 748, 50);
UIView* view2 = [[UIView alloc]initWithFrame:rect2];
view2.backgroundColor = [UIColor purpleColor];
view2.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[self.view addSubview:view2];
当我以横向模式启动应用程序时,就会出现问题。以下是截图:


有人能告诉我代码中的错误吗?谢谢

我稍微修改了代码:

CGRect rect2 = CGRectMake((w-748)/2, 105, 748, 50);

这和我预期的一样

我强烈怀疑这是iOS 8的另一个bug。仍然无法解决这个问题。有人有同样的问题吗?