Как я могу исправить это предупреждение msg. Предупреждение: игнорирование определенного пользователем атрибута времени выполнения для радиуса пути ключа в экземпляре UIButton

Я получаю это предупреждающее сообщение. Как я могу это исправить.

Предупреждение: IB Designables: игнорирование определенного пользователем атрибута времени выполнения для пути к ключу radius в экземпляре UIButton. Вызовите исключение при попытке установить его значение: [setValue:forUndefinedKey:]: этот класс не соответствует кодированию значения ключа для ключа radius.

Вот пользовательский класс UIButtonRounded

@IBDesignable class UIButtonRounded: UIButton
{
    override func layoutSubviews() {
       super.layoutSubviews()
       updateCornerRadius()
    }

    @IBInspectable var rounded: Bool = false {
       didSet {
         updateCornerRadius()
       }
    }

    @IBInspectable var border: Bool = false {
       didSet {
        updateCornerRadius()
       }
    }

    @IBInspectable var radious: CGFloat = 0 {
       didSet {
        updateCornerRadius()
       }
    }

    func updateCornerRadius() {
       layer.cornerRadius = rounded ? radious : 0
       layer.masksToBounds = true
       if(border){
          layer.borderWidth = 1.3
          layer.borderColor = UIColor(named:"color_bg_white")?.cgColor
       }

    }
}

После применения пользовательского класса

Пользовательский атрибут класса

Waring msg

Заранее спасибо.


person Rafiqul Hasan    schedule 20.03.2018    source источник
comment
Уже попробовал. Не работает для меня.   -  person Rafiqul Hasan    schedule 20.03.2018


Ответы (2)


Это работает для меня:

import UIKit

@IBDesignable
class DesignableView: UIView {
}

@IBDesignable
class DesignableButton: UIButton {
}

@IBDesignable
class DesignableLabel: UILabel {
}

extension UIView {

@IBInspectable
var cornerRadius: CGFloat {
    get {
        return layer.cornerRadius
    }
    set {
        layer.cornerRadius = newValue
    }
}

@IBInspectable
var borderWidth: CGFloat {
    get {
        return layer.borderWidth
    }
    set {
        layer.borderWidth = newValue
    }
}

@IBInspectable
var borderColor: UIColor? {
    get {
        if let color = layer.borderColor {
            return UIColor(cgColor: color)
        }
        return nil
    }
    set {
        if let color = newValue {
            layer.borderColor = color.cgColor
        } else {
            layer.borderColor = nil
        }
    }
}

@IBInspectable
var shadowRadius: CGFloat {
    get {
        return layer.shadowRadius
    }
    set {
        layer.shadowRadius = newValue
    }
}

@IBInspectable
var shadowOpacity: Float {
    get {
        return layer.shadowOpacity
    }
    set {
        layer.shadowOpacity = newValue
    }
}

@IBInspectable
var shadowOffset: CGSize {
    get {
        return layer.shadowOffset
    }
    set {
        layer.shadowOffset = newValue
    }
}

@IBInspectable
var shadowColor: UIColor? {
    get {
        if let color = layer.shadowColor {
            return UIColor(cgColor: color)
        }
        return nil
    }
    set {
        if let color = newValue {
            layer.shadowColor = color.cgColor
        } else {
            layer.shadowColor = nil
        }
     }
   }
}
person Jamil Hasnine Tamim    schedule 20.03.2018

Если вы создадите значение и измените его позже, оно по-прежнему будет существовать в определенных пользователем атрибутах времени выполнения в Identity Inspector. Перейдите туда и удалите старое значение.

person Jevon Charles    schedule 22.04.2019