当我在 iOS 中使用 CGRectMake()
创建框架时,无论是设置 frame
属性还是使用 initWithFrame:
,它要求 x、y、宽度和高度。我提供这些。
但是对于自动布局,我接下来要说的是:“将它的 x 放在最中间”和“将宽度设置为屏幕的一半”,在我用 CGRectMake() 设置它们之后
可能不同。
我如何在 CGRectMake()
中设置它们? 0?任意值?接近我想要的东西?
最佳答案
当使用自动布局时,根本不应该设置 frame
属性。您可以设置 frame
,但这样做没有任何意义,只会让您的代码产生误导,因为 frame
将被它根据约束计算的尺寸所取代。我建议使用约束完全定义控件的尺寸,并避免完全设置 frame
以避免混淆。
因此,如果您以编程方式创建 View ,而不是 initWithFrame
,只需执行 init
。此外,不要忘记将 translatesAutoresizingMaskIntoConstraints
设置为 NO
,并添加所有适当的约束,使布局明确,但也没有冲突约束。
关于ios - 你如何平衡自动布局和创建框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17003363/