无法设计我的@IBDesignable视图

时间:2015-10-14 16:13:30

标签: ios xcode interface-builder subview ibdesignable

我有以下内容:

@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子视图?

1 个答案:

答案 0 :(得分:0)

您可以尝试"设置()"在layoutSubviews。

override func layoutSubviews() { 
     super.layoutSubviews()
     setup()
}