如何平衡自动布局与创建框架?

时间:2013-06-08 20:05:32

标签: ios objective-c uiview autolayout cgrect

当我使用CGRectMake()在iOS中创建框架时,无论是设置frame属性还是使用initWithFrame:,它都会询问x,y,width和height。我提供这些。

但是使用自动布局,我接下来要说的是:“将x放在正中间”和“将宽度设置为屏幕的一半”,就在我设置CGRectMake()之后不同。

如何在CGRectMake()中设置它们? 0?任意值?接近我想要的东西?

1 个答案:

答案 0 :(得分:6)

使用自动布局时,不应设置frame属性。您可以设置frame,但这样做没有任何意义,只会使您的代码产生误导,因为frame将被其根据约束计算的维度所取代。我建议使用约束完全定义控件的维度,并避免完全设置frame以避免混淆。

因此,如果您是以编程方式创建视图而不是initWithFrame,请执行init。另外,不要忘记将translatesAutoresizingMaskIntoConstraints设置为NO,并添加所有适当的约束,使布局明确,但也没有冲突约束。