如何使用Objective-C根据UIView的宽度分配权重

时间:2015-08-30 19:08:27

标签: ios iphone uiview

我正在尝试在iOS中执行LinearLayout之类的操作,根据布局分配权重。在这种情况下,我有4个视图(3 UIView和一个UILabel。我的范围根据超视图的宽度为所有视图提供相同的宽度,并根据它设置帧。 / p>

所以在viewDidLoad我执行这个命令:

[self.view1 setFrame:CGRectMake(0 * self.view1.superview.frame.size.width/4,
                                self.view1.frame.origin.y,
                                self.view.frame.size.width/4,
                                self.view1.superview.frame.size.height)];

[self.view2 setFrame:CGRectMake(1 * self.view2.superview.frame.size.width/4,
                                self.view2.frame.origin.y,
                                self.view.frame.size.width/4,
                                self.view2.superview.frame.size.height)];

[self.view3 setFrame:CGRectMake(2 * self.view3.superview.frame.size.width/4,
                                self.view3.frame.origin.y,
                                self.view.frame.size.width/4,
                                self.view3.superview.frame.size.height)];

[self.label setFrame:CGRectMake(3 * self.label.superview.frame.size.width/4,
                                self.label.frame.origin.y,
                                self.view.frame.size.width/4,
                                self.label.superview.frame.size.height)];

但是在iPhone 6上我得到了:

enter image description here

你们这些人如何重新分配权重?

非常感谢你。

圣拉斐尔。

修改

我刚刚发现调用super.view.frame.size.width并没有给我全宽......为什么?

1 个答案:

答案 0 :(得分:0)

为什么不通过将view1width设置为等于容器宽度0.25乘以其他视图来使用自动布局

这是一个展示如何进行比例约束的链接

http://makeapppie.com/2014/11/25/proportional-sizes-in-autolayout/