我有以下内容:
@IBDesignable class CustomView: UIView {
@IBInspectable var hasFlag: Bool = true
var flagView: UIView?
override init(frame: frame) {
super.init(frame)
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
func setup() {
if (hasFlag) {
flagView = UIView()
flagView!.translatesAutoresizingMaskIntoConstraints = false
flagView!.backgroundColor = UIColor.redColor()
addSubview(flagView!)
flagView!.leadingAnchor.constraintEqualToAnchor(leadingAnchor, constant: 0).active = true
flagView!.topAnchor.constraintEqualToAnchor(topAnchor, constant: 0).active = true
flagView!.widthAnchor.constraintEqualToConstant(8).active = true
flagView!.bottomAnchor.constraintEqualToAnchor(bottomAnchor, constant: 0).active = true
}
}
}
但是,当我进入界面构建器时,我看到我的红旗,但我没有选择flagView的选项,比如设置它的背景颜色。我也看不到它出现在我的CustomView下的视图层次结构中。我将有多个CustomView,每个可能有不同的颜色。我想在界面构建器而不是代码中执行此操作。有没有办法通过界面构建器编辑我的@IBDesignable子视图?
答案 0 :(得分:0)
您可以尝试"设置()"在layoutSubviews。
override func layoutSubviews() {
super.layoutSubviews()
setup()
}