Я написал подкласс для 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>