Есть ли способ заставить пользовательское ограничение работать в конструкторе интерфейсов?

Создайте UIView с фиксированным ограничением по высоте, обратите внимание, что я установил его на 40 в IB.

Измените класс ограничения на это:

@IBDesignable class BadassHeightConstraint: NSLayoutConstraint {

    override var constant: CGFloat {
        set {
            super.constant = newValue
        }
        get {
            return calc()
        }
    }

    private func calc() -> CGFloat {
        return 100.0
    }
}

Это отлично работает во время выполнения, левое изображение, это 100, а не 40.

Но я не могу заставить его работать в IB. Почему это так?

введите здесь описание изображения

Есть ли решение, чтобы они работали в IB?


person Fattie    schedule 05.08.2019    source источник


Ответы (1)


Проще говоря, только UIView может быть @IBDesignable.

person matt    schedule 20.08.2019