Пользовательские классы SKSpriteNode для использования в файле.sks?

Я делаю кастом SKSpriteNode Класс, который я хочу использовать в своем .sks файл. Я хочу это иметь @IBInspectable имущество. Является ли это возможным? И как я могу реализовать его init(coder:) метод или нет необходимости его реализовывать?

1 ответ

Решение

Нет, это невозможно использовать @IBInspectable, который работает только с классами в редакторе раскадровки.

Вы можете создать свой собственный класс с init и создать его из кода. Если вы хотите создать свой собственный объект из редактора сцен, вы ДОЛЖНЫ использовать init(coder:) FUNC

вы можете иметь оба init в вашем классе на случай, если в какой-то момент вы захотите создать экземпляр вашего объекта в коде, а также создать файл sks сцены.

init() {

    super.init(texture: nil, color: .clear, size, CGSize.zero)

    setup()
}

required init?(code aDecoder: NSCoder) {

    super.init(code: aDecoder)

    setup()
}

func setup() {
    //add some setup code here
}

Или, если вы ТОЛЬКО хотите создать экземпляр объекта в файле сцены, вы можете исключить обычный init().

Другие вопросы по тегам