@IBDesignable Агент разбился - PullRequest
0 голосов
/ 19 марта 2020

Я написал подкласс для UIButton, и у меня есть эта ошибка

ошибка: IB Designables: Не удалось отобразить и обновить состояние автоматической разметки для ...: Агент разбился

. Не могли бы вы сказать мне, что не так с моим кодом? Я использую XCode 11.13.1 и Swift 5. И я прочитал этот ответ @ IBDesignable аварийный агент , но он мне не помог.

 import UIKit

@IBDesignable class MLButton: UIButton {

// MARK: - @IBInspectables
@IBInspectable var isActive: Bool = true {
    didSet {
        isUserInteractionEnabled = isActive
        configureUI()
    }
}

@IBInspectable var cornerRadius: CGFloat = 0 {
    didSet {
        layer.cornerRadius = cornerRadius
        clipsToBounds = true
    }
}

@IBInspectable var activeBackgroundColor: UIColor = Colors.newOrange {
    didSet {
        configureUI()
    }
}

@IBInspectable var inactiveBackgroundColor: UIColor = Colors.orangeBack {
    didSet {
        configureUI()
    }
}

@IBInspectable var activeTintColor: UIColor = UIColor.white {
    didSet {
        configureUI()
    }
}

@IBInspectable var inactiveTintColor: UIColor = Colors.newOrange {
    didSet {
        configureUI()
    }
}

// MARK: - Lifecycle
required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    commonInit()
}

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


// MARK: - Methods
private func commonInit() {
    titleLabel?.font = UIFont(.latoSemibold(size: 17))
}

private func configureUI() {
    tintColor = isActive ? activeTintColor : inactiveTintColor
    backgroundColor = isActive ? activeBackgroundColor : inactiveBackgroundColor
}
}

Использование только из Storyboard. Код раскадровки:

<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YTx-TM-kTh" customClass="MLButton" customModule="Preggie" customModuleProvider="target">
                                                <rect key="frame" x="0.0" y="0.0" width="240" height="50"/>
                                                <constraints>
                                                    <constraint firstAttribute="height" constant="50" id="f74-3Q-ay1"/>
                                                </constraints>
                                                <state key="normal" title="Создать аккаунт"/>
                                                <userDefinedRuntimeAttributes>
                                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                                        <real key="value" value="7"/>
                                                    </userDefinedRuntimeAttribute>
                                                    <userDefinedRuntimeAttribute type="boolean" keyPath="isActive" value="YES"/>
                                                </userDefinedRuntimeAttributes>
                                                <connections>
                                                    <action selector="createAccountButtonDidTap" destination="y7n-q9-1CA" eventType="touchUpInside" id="nco-j7-YiR"/>
                                                </connections>
                                            </button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...