【发布时间】:2014-11-20 19:43:43
【问题描述】:
为了解决与以编程方式将子视图添加到滚动视图相关的自动布局问题,我在整个互联网上遇到了 many 引用,在各种情况下都说要设置 translatesAutoresizingMaskIntoConstraints = YES 或 translatesAutoresizingMaskIntoConstraints = NO ,视情况而定。
但是,在 Swift 中,当我键入时:
var view = UIView()
view.translatesAutoresizingMaskIntoConstraints = false
我收到内联错误:Cannot assign to 'translatesAutoresizingMaskIntoConstraints' in 'view'。为什么?因为,当你检查时,你会发现它是一个无参数的函数,而不是一个属性。
我已经通过子类化解决了这个问题,但是为了设置translatesAutoresizingMaskIntoConstraints,必须对我正在处理的每个视图进行子类化是一个很大的不便:
class CardView: UIView {
override func translatesAutoresizingMaskIntoConstraints() -> Bool {
return false
}
}
有没有人知道解决这个问题的方法,或者可以阐明一般互联网委员会告诉您的内容与您在 Swift 中实际可以做什么之间的差异?
【问题讨论】:
-
Swift 2.0 允许您直接设置
translatesAutoresizingMaskIntoConstraints。这个问题的答案仍然适用于 Swift 2.0 之前的版本。
标签: ios swift autolayout