@IBInspectable NSLayoutConstraint不起作用Xcode 8.2.1(8C1002)

时间:2016-12-31 08:16:24

标签: ios objective-c swift xcode interface-builder

我有一个奇怪的行为,不希望在Interface Builder中更新约束。

以下是我的代码的两个变体,两者都不起作用。

extension NSLayoutConstraint {

    @IBInspectable var preciseConstant: CGFloat {
        get {
            return constant * UIScreen.main.scale
        }
        set {
            constant = CGFloat(newValue) / UIScreen.main.scale
        }
    }
}

@IBDesignable class CustomLayoutConstraint: NSLayoutConstraint {
    @IBInspectable var screenHeight: CGFloat = 0.0 {
        didSet {
            changeContraint()
        }
    }

    func changeContraint() {
        self.constant = self.screenHeight / UIScreen.main.scale
    }
}

enter image description here

我的错误还是Xcode的错误?

1 个答案:

答案 0 :(得分:0)

使用IBInspectable属性时,didSet逻辑不起作用。您需要做的就是在self.constant方法中更改所需的属性(例如awakeFromNib)。