我有UITableViewCell
我在其中添加自定义视图,比如说
class MyView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
convenience required init(size: CGFloat) {
self.init(frame: CGRect.zero)
height = size
// init my other sub contents [1]
}
}
来自我的UITableViewCell
:
let myView = MyView(size: 35)
contentView.addSubView(myView)
我的问题:我MyView
中的其他用户界面组件取决于width
的{{1}}和height
,现在在MyView
设置位置为时尚早因为[1]
的框架现在是MyView
我应该将其他UI组件放在(x: 0, y: 0, width: 0, height: height)
中?是否有MyView
中的代表告诉我:“嘿,视图的框架会根据其实际大小进行更新。”? (例如UIView
中的viewDidAppear
)
此致
答案 0 :(得分:1)
你可以做到
override var frame: NSRect {
didSet {
//update your subviews
}
}
在MyView
课程中。但实际上,您应该考虑设置适当的约束:
https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/