2

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

但是对于自动布局,我接下来要说的是:“将其 x 定位在最中间”和“将宽度设置为屏幕的一半”,就在我将它们设置为CGRectMake()可能不同之后。

我将它们设置CGRectMake()为什么?0? 任意值?接近我想要的东西?

4

1 回答 1

6

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

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

于 2013-06-08T20:10:26.180 回答