Используйте @IBInspectable с любым подклассом UIView в раскадровках - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть класс для использования с @IBInspectable, чтобы получить свойства в моей раскадровке. Вот небольшой кусок этого:

/// UIView subclass to allow creating corners, shadows, and borders in storyboards.
final class GEView: UIView {

    // MARK: - Rounded corners
    @IBInspectable
    var cornerRadius: CGFloat = 0 {
        didSet {
            layer.cornerRadius = self.cornerRadius
            layer.masksToBounds = true
        }
    }

    /* ... */
}

Это прекрасно работает в течение UIView с в моей раскадровке. Однако я хочу, чтобы это также работало с UIImageView s и другими подклассами UIView. Возможно ли это без подкласса моего GEView, сделав его универсальным?

1 Ответ

1 голос
/ 13 апреля 2019

Переместите ваш код в @IBDesignable extension UIView, как показано ниже:

@IBDesignable extension UIView {    
    @IBInspectable var cornerRadius: CGFloat {
        set {
            layer.cornerRadius = newValue
            layer.masksToBounds = true
        }
        get {
            return self.cornerRadius
        }
    }
}

Удалите ненужные значения / типы ранее определенных переменных в вашем GEView.Вот значения в инспекторе.

enter image description here

Свойства, доступные в инспекторе любого UIView, включаются сами.

Properties avaliable in storyboard interface

...