我正在创建 UIStackView 的子类,并且我希望间距是静态且不可覆盖的。我认为这可以简单地通过覆盖spacing
属性来完成:
class MyStackView: UIStackView {
override var spacing: CGFloat {
get { return 8.0 }
set {}
}
}
但是,这不起作用。getter 永远不会被调用,也不会显示间距。我为此找到的唯一解决方案是以下代码:
class MyStackView: UIStackView {
override init(frame: CGRect) {
super.init(frame: frame)
super.spacing = 8.0
}
override var spacing: CGFloat {
get { return 8.0 }
set {}
}
}
实际上,我返回什么并不重要get
,反正它从来没有被任何东西调用过。
任何人都可以解释这种行为] r 以及如何避免它?