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

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

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

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

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

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