如何平衡自动布局与创建框架?
当我在iOS中使用CGRectMake()
创建一个框架时,无论是设置frame
属性还是使用initWithFrame:
,它都会询问x,y,width和height。 我供应这些。
但是对于自动布局,我接下来要说的是:“将x放在正中间”和“将宽度设置为屏幕的一半”,就在我用CGRectMake()
设置它们之后。
我在CGRectMake()
如何设置它们? 0? 任意值? 接近我想要的东西?
使用自动布局时,根本不应设置frame
属性。 您可以设置frame
,但这样做没有任何意义,只会使您的代码产生误导,因为frame
将被它从约束中计算的尺寸所取代。 我建议使用约束完全定义控件的尺寸,并避免完全设置frame
以避免混淆。
因此,如果您以编程方式创建视图,而不是initWithFrame
,只需执行init
。 另外,不要忘记将translatesAutoresizingMaskIntoConstraints
设置为NO
,并添加所有适当的约束,使布局明确,但也没有冲突的约束。