通过iOS 8中的autoresizingMask将UIView置于父视图的中心

时间:2014-10-29 07:06:24

标签: ios8 autoresizingmask

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

enter image description here

这是我的源代码:

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];

以横向模式启动应用程序时出现问题。这是截图:

enter image description here

有人可以告诉我在我的代码中做错了什么吗?感谢

1 个答案:

答案 0 :(得分:0)

我稍微修改了一下代码:

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

这符合我的预期。