Класс IBDesignable не обновляется в xcode - PullRequest
0 голосов
/ 23 января 2019

Я создал пользовательский класс IBDesignable UISegmentedControl. У класса нет ошибок сборки, но есть предупреждения, он не обновляется внутри XCode. Есть предупреждения, см. Скриншот ниже.

@IBDesignable open class UISegmentedControlBorderless : UISegmentedControl {

    @IBInspectable var borderColor:UIColor = UIColor.white {
        didSet {
            setupUI()
        }
    }
    @IBInspectable var textColor:UIColor = UIColor.white {
        didSet {
            setupUI()
        }
    }
    @IBInspectable var textSelectedColor:UIColor = UIColor.red {
        didSet {
            setupUI()
        }
    }

    required public init?(coder aDecoder:NSCoder) {
        super.init(coder:aDecoder)
        setupUI()
    }

    override init(frame:CGRect) {
        super.init(frame:frame)
        setupUI()
    }

    override open func awakeFromNib() {
        super.awakeFromNib()
        setupUI()
    }

    override open func prepareForInterfaceBuilder() {
        super.prepareForInterfaceBuilder()

        setupUI()
    }

    fileprivate func setupUI() {
        tintColor = borderColor
        let attributes = [NSAttributedStringKey.foregroundColor: textColor]
        let attributes2 = [NSAttributedStringKey.foregroundColor: textSelectedColor]

        setTitleTextAttributes(attributes, for: .normal)
        setTitleTextAttributes(attributes2, for: .selected)

    }  
}

Предупреждения:

xcode screenshot

Модуль Untking для наследования

enter image description here

1 Ответ

0 голосов
/ 23 января 2019

На основании первого предупреждения на вашем скриншоте, Xcode не находит ваш подкласс UISegementedControl. Обычно это происходит из-за неправильной установки модуля, в котором определен класс, и поскольку ваш подкласс определен как open, вполне вероятно, что он у вас есть в каркасе или модуле вне целевого приложения.

Итак, убедитесь, что вы установили пользовательский класс для сегментированного элемента управления на раскадровке, для которого вы также выбрали правильный модуль, для которого определен подкласс, и вы, вероятно, хотите снять флажок «наследовать модуль от цели», чтобы сделать так:

Custom Class Tab

...