在SKScene中使用UICollectionView实现水平滚动菜单

时间:2017-12-14 15:42:26

标签: ios swift sprite-kit uicollectionview

我正在为游戏实现水平旋转木马风格的角色选择屏幕(如下图所示)。

Image of carousel effect

该应用程序的结构为一个主要GameViewController呈现不同的场景; CharacterSelectionScene就是其中之一。

从我的研究看来,虽然并不总是建议混合UIKitSpriteKit元素,但实现效果的最佳方法是使用UIColectionView并将其添加为子视图到场景。因为它负责一些动画和弹跳效果。

Horizontal scrolling in SpriteKit (vs. a viewcontroller)

然而,它给了我一个真正的头痛!以上面的帖子为例,我将UICollectionView子类化,但我无法使用CharacterSelectionScene作为数据源和委托!这是理想的,因为场景是从plist加载数据的地方。

我目前正在使用我的CharacterCollectionView作为数据源并通过集合视图的init() a la:

从场景传递数据进行委托
collectionView = CharacterCollectionView(frame: customFrame, collectionViewLayout: layout, characterData: characterData)

这可行,但感觉就像一个坏主意,感觉有点像一个小屋。也许我错了,但作为一个相当新的程序员,我只想以正确的方式做到这一点!

有人能指出我正确的方向吗?我在这里走错了路还是这是一个非常好的前进方式。所有建议/指示赞赏!

0 个答案:

没有答案