0

我正在制作一个自定义SKSpriteNode类,我想在我的.sks文件中使用它。我希望它拥有@IBInspectable财产。可能吗?以及如何实现它的init(coder:)方法,或者没有必要实现它?

4

1 回答 1

1

不,不可能使用@IBInspectable,它只适用于情节提要编辑器中的类。

您可以使用 an 创建自定义类init并从代码中对其进行实例化。如果你想从场景编辑器中实例化你的自定义对象,你必须使用init(coder:)func

如果您希望在某些时候在代码中实例化您的对象以及在场景 sks 文件中创建,您可以在您的类中同时拥有这两个 init。

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()。

于 2017-08-21T13:46:45.690 回答