gpt4 book ai didi

Swift - UIView 何时更新其框架?

转载 作者:行者123 更新时间:2023-11-28 15:40:42 25 4
gpt4 key购买 nike

我有一个 UITableViewCell,我在其中添加了自定义 View ,比如

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]
}
}

来 self 的 UITableViewCell:

let myView = MyView(size: 35)
contentView.addSubView(myView)

我的问题:我在 MyView 中的其他 UI 组件取决于 MyViewwidthheight 并且它是设置它们在 [1] 中的位置还为时过早,因为 MyView 的框架现在是 (x: 0, y: 0, width: 0, height: height )

我应该将我的其他 UI 组件放在 MyView 的什么地方? UIView 中是否有一个委托(delegate)告诉我:“嘿, View 的框架已更新为实际大小。”? (比如 UIViewController 中的 viewDidAppear)

问候,

最佳答案

你可以做到

override var frame: NSRect {
didSet {
//update your subviews
}
}

在您的 MyView 类中。但实际上,您应该只考虑设置适当的约束:

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/

关于Swift - UIView 何时更新其框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43733216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com