Интерфейсный конструктор показывает все @IBInspectable в каскаде - PullRequest
0 голосов
/ 01 марта 2019

Возможно, я слишком сложен, но вот что я хочу:

@IBDesignable
class A: UIView {
    @IBInspectable var title: String = "" {
        didSet {
            setNeedsLayout()
        }
    }
}

@IBDesignable
class B: UIView {
    var firstView: A = A()
    var secondView: A = A()
}

В классе B есть 2 класса @IBDesignable, поэтому, если я хочу настроить B непосредственно в Интерфейсном Разработчике, я могу 't поскольку у меня нет доступа к классам 2 A.

Сначала я создаю протокол для перечисления всех элементов в классе A, но когда для представления требуется 2 или более элемента класса A, я могу 'не используйте это.

У кого-нибудь есть идея иметь только 1 класс B в моей раскадровке и можно настроить оба класса A?

1 Ответ

0 голосов
/ 01 марта 2019

Не очень уверен, если это возможно.Обычно это невозможно, даже если вы используете классы Apple Library, например, UIButton имеет UIView, а также UILabel.

Хотя эти различные классы и некоторые вещи возможны путем переопределения, как объяснено здесь

Но я могу дать вам взлом здесь.В объект, который вы создаете для объекта B в раскадровке, вы можете добавить User Defined Runtime Attributes следующим образом -

firstView.title & secondView.title

Я знаю, что это может быть не тот ответ, который выищет, но это только способ.

...