Невозможно увидеть настраиваемые свойства IBInspectable в раскадровке пользовательского класса представления.

Я создал собственный класс UIView с включенным в нем методом IBDesignable. Внутри класса я добавил несколько свойств IBInspectable, которые выглядят примерно так:

Swift 4.0 – Фрагмент:

@IBDesignable
class SegmentView: UIView {
    @IBInspectable var borderWidth = 0.0 {
            didSet{
                layer.borderWidth = CGFloat(borderWidth)
            }
        }

        @IBInspectable var borderColor = UIColor.clear {
            didSet{
                layer.borderColor = borderColor.cgColor
            }
        } 
}

Всякий раз, когда я использую этот класс в StoryBoard для элемента UIView, я не могу просмотреть объявленные выше свойства IBInspectable в раскадровке -> View -> View Property Tab, для справки, пожалуйста, проверьте прикрепленный ниже снимок экрана.

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

Проблема. В приведенном выше заголовке представления сегмента нет доступных свойств IBInspectable.

Может ли кто-нибудь помочь мне решить мою вышеуказанную проблему?

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


person Abilash Balasubramanian    schedule 27.07.2018    source источник
comment
Вы пытались перезапустить xcode?   -  person Bence Pattogato    schedule 27.07.2018
comment
Да я уже пробовал много раз.   -  person Abilash Balasubramanian    schedule 27.07.2018


Ответы (2)


Вам нужно явно объявить тип переменной, например:

@IBDesignable
class SegmentView: UIView {

    @IBInspectable var borderWidth: CGFloat = 0.0 {
        didSet {
            layer.borderWidth = CGFloat(borderWidth)
        }
    }

    @IBInspectable var borderColor: UIColor = .clear {
        didSet {
            layer.borderColor = borderColor.cgColor
        }
    } 
}
person Bence Pattogato    schedule 27.07.2018

Пожалуйста, замените свою переменную следующей, она решит вашу проблему.

        @IBInspectable
        public var borderWidth: CGFloat = 0.0{
                didSet{
                        self.layer.borderWidth = self.borderWidth
                }
        }

        @IBInspectable
        public var borderColor: UIColor = UIColor.clear{
                didSet{
                        self.layer.borderColor = self.borderColor.cgColor
                }

        }
person Hemant Sabale    schedule 27.07.2018