我正在構建一個UIPageViewController,它具有基於視圖數組中視圖高度的可變頁數。如何在添加到子視圖之前獲取UIView的寬度和高度?
我有一個叫做BlockView
類,看起來像這樣:
final class BlockView: UIView {
init(viewModel: BlockViewModel) {
super.init(frame: .zero)
let primaryLabel = UILabel()
primaryLabel.text = viewModel.labelText
addSubview(primaryLabel)
constrain(primaryLabel) {
$0.top == $0.superview!.top + 8
$0.bottom == $0.superview!.bottom - 8
$0.left == $0.superview!.left + 8
$0.right == $0.superview!.right - 8
}
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
我想什麼,能夠做的是循環通過我BlockViews的陣列和運行print(blockView.frame)
和看到未幀零。
現在我知道我將frame
設置爲.zero
裏面的BlockView.init
。這是因爲我希望視圖根據其標籤來確定自己的尺寸。
是否有我需要運行來實現這個功能?
感謝
雖然我個人不使用框架(自動佈局來代替),從聲音你不能*做到這一點。兩者都基於視圖和控制器生命週期。是的,**兩個**都不知道它們在'init'上的「框架」 - 除非控制器*足夠遠以便給它*視圖的框架*或者*提供特定的框架。所以我想問題是 - 你有什麼'UIViewController'代碼可能有幫助? – dfd
我總是使用自動佈局。我面臨的棘手的部分,我想要添加視圖作爲子視圖,如果它適合沒有溢出,或者我想爲UIPageViewController創建一個新的視圖控制器,然後*然後*添加元素。這需要調整 –
BlockView有沒有限制?如果添加約束,手動框架設置將不起作用。 –