【发布时间】:2021-01-13 14:38:44
【问题描述】:
我有一个自定义视图和 xib。我在情节提要的一个控制器视图中使用了这个自定义视图。
我有一个用例,我希望能够隐藏自定义视图(并将其高度归零)。现在,我在界面构建器中设置了高度,并为超级视图的边缘设置了约束:
如你所见,我希望它的高度在任何地方都是84。
现在这是我的自定义视图的类:
import UIKit
@IBDesignable
class BannerView: UIView {
@IBOutlet var contentView: UIView!
override init(frame: CGRect) {
super.init(frame: frame)
initialize()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initialize()
}
override func awakeFromNib() {
super.awakeFromNib()
initialize()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
initialize()
contentView?.prepareForInterfaceBuilder()
}
func initialize() {
guard let view = loadViewFromNib() else { return }
view.frame = self.bounds
view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
addSubview(view)
contentView = view
}
func loadViewFromNib() -> UIView? {
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: "BannerView", bundle: bundle)
return nib.instantiate(withOwner: self, options: nil).first as? UIView
}
func hide() {
// Hide the view and set its height to zero here
}
}
但是,现在我很困惑......当我将自定义视图加载到我的故事板之一时,我是否也应该在自定义视图上设置高度限制?或者它的高度应该在任何地方都是84,我不应该再指定它了吗?
另外,在上述hide() 函数中,如何隐藏自定义视图并将其高度设置为零?
【问题讨论】:
标签: ios swift xcode interface-builder