ios - 你如何平衡自动布局和创建框架?

标签 ios objective-c uiview autolayout cgrect

当我在 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/

相关文章:

ios - native 代码 + 网站中的 Phonegap 构建

ios - 影响 UINavigationBar 的后退按钮方法 (iOS)

objective-c - NSString:在另一个字符串中查找字符串的一部分

objective-c - UIScrollView 内容大小的 SizeToFit

ios - 尝试使用 RxSwift 中的过滤器访问属性

ios - UISwitch 正在触发 UITableView 中的另一个 UISwitch 事件

ios - 替换 iOS 中保留的 "description"的字段的适当名称是什么?

iphone - objective-c - 文本缩进

objective-c - 添加 subview 似乎没有任何作用

iphone - UIView 调整 subview 大小