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

Ios 如何使用Objective-C根据UIView的宽度分配权重,ios,iphone,uiview,Ios,Iphone,Uiview,我试图做一些类似于iOS中的LinearLayout的事情,根据布局分配权重。在本例中,我有4个视图(3个UIView和一个UILabel。我的范围是根据superview的宽度为所有视图提供相同的宽度,并根据其设置帧 因此,在viewDidLoad中,我执行以下命令: [self.view1 setFrame:CGRectMake(0 * self.view1.superview.frame.size.width/4, self.

我试图做一些类似于iOS中的
LinearLayout
的事情,根据布局分配权重。在本例中,我有4个视图(3个
UIView
和一个
UILabel
。我的范围是根据superview的宽度为所有视图提供相同的宽度,并根据其设置帧

因此,在
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上,我得到:

伙计们,你们如何重新分配重量

事先非常感谢

拉斐尔


编辑


我刚刚发现调用super.view.frame.size.width并不能得到完整的宽度…为什么?

为什么不使用自动布局,将view1width设置为容器宽度,并使用乘数0.25等其他视图

这是一个演示如何设置比例约束的链接


为什么不使用自动布局,将view1width设置为与容器宽度相等,并使用乘数0.25等其他视图。该属性对我来说是未知的…我从iOS开发开始。我将尝试一下,好吗?谢谢!