純粋に SpriteKit でこれを行うには、基本的に moveableNode を作成し、すべてのメニュー項目をそのノードに追加してから、そのノードを touchesMoved で移動します。その位置を追跡し、速度などをいじる必要があります。
https://codedump.io/share/etvt4SwQI6iR/1/how-to-create-a-vertical-scrolling-menu-in-spritekit
このようなメニューは、UIScrollViews や UICollectionViews など、実際には SpriteKit で UIKit を使用した方が良いという稀なケースだと思います。
SpriteKit でそれらを複製しようとするのは少しトリッキーで、追加のコードが必要であり、スクロール/バウンス効果も得られません。
それが探しているものである場合は、Spritekit で UIColletionView を作成できます。サブクラス化するだけで済みます。レベル選択画面として取り組んでいるゲームの 1 つを使用しています。
新しい迅速なファイルを作成する
class CustomCollectionView: UICollectionView {
// MARK: - Init
init(frame: CGRect) {
super.init(frame: frame)
/// set up
backgroundColor = UIColor.clearColor()
#if os(iOS)
pagingEnabled = true
#endif
self.frame = frame
delegate = self
dataSource = self
indicatorStyle = .White
scrollEnabled = true
canCancelContentTouches = false
registerClass... // register your cells
}
// MARK: - Delegates
extension CustomCollectionView: UICollectionViewDataSource {
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 5
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 8
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
.......
}
次に、SKScenes でコレクション ビューを追加できます。
weak var collectionView: CustomCollectionView!
collectionView = CustomCollectionView(frame: view!.frame)
view!.addSubview(collectionView)
カスタム セルの作成方法や一般的なセットアップ方法など、UICollectionView に慣れるためにいくつかのチュートリアルを読む必要があります。また、SKScenes を変更するときは collectionView を削除する必要があります。
collectionView.removeFromSuperview()
これはあなたが求めているものですか?