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