我如何添加滚动视图到我的gameScene.swift,这将滚动一系列的精灵?

所以我创build了一个3×10的精灵网格,它离开了屏幕的底部边缘。 我已经添加了一个UIScrollView,滚动指示器出现,但实际上没有发生移动。 代码如下:

import SpriteKit var buyButton = SKSpriteNode() var pic = SKTexture(imageNamed: "Button") class GameScene: SKScene, UIScrollViewDelegate { var scrollView = UIScrollView() var scrollFrame = CGRect!() override func didMoveToView(view: SKView) { /* Setup your scene here */ print(self.frame.size.width) scrollView = UIScrollView(frame: CGRect(origin: CGPointMake(0,0), size: CGSizeMake(self.frame.size.width, self.frame.size.height))) scrollView.contentSize = CGSizeMake(self.frame.size.width, self.frame.size.height*2) scrollView.bounces = false scrollView.pagingEnabled = true scrollView.showsHorizontalScrollIndicator = false scrollView.showsVerticalScrollIndicator = true scrollView.backgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: 0) var width = self.frame.size.width var height = self.frame.size.height for i in 1...10{ for x in 1...3{ buyButton = SKSpriteNode(texture: pic, size: CGSizeMake(width*13/CGFloat(45), 100))//(rectOfSize: CGSizeMake(width*13/CGFloat(45), 100)) buyButton.position = CGPointMake(CGFloat(29.0)*CGFloat(x)*width/CGFloat(90.0)-width*CGFloat(13)/CGFloat(90), CGFloat(i)*0.15*height-width*CGFloat(13)/CGFloat(45)*9.0/16.0) print("\(x)\(i)") buyButton.size = CGSizeMake(width*CGFloat(13)/CGFloat(45), width*CGFloat(13)/CGFloat(45)*9.0/16.0) buyButton.name = "\(x)\(i)" self.addChild(buyButton) var label = SKLabelNode(text: "hi") label.fontSize = 40 label.name = "Label\(x)\(i)" buyButton.addChild(label) print(CGFloat(29.0)*CGFloat(x)*width/CGFloat(90.0)-width*CGFloat(13)/CGFloat(90)) label.fontColor = UIColor.blackColor() label.horizontalAlignmentMode = .Center label.verticalAlignmentMode = .Center } } self.scene?.view?.addSubview(scrollView) } override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { /* Called when a touch begins */ } override func update(currentTime: CFTimeInterval) { /* Called before each frame is rendered */ } } 

所以我不完全确定我做错了什么。

我意识到这不应该在GameScene.swift文件中,应该是分开的,但这只是一个testing项目。

谢谢 :-)

你遇到了一段时间我苦苦挣扎的问题。 根本的问题是你不能将SKNodes添加到UIKit视图,并且你不能将UIKit视图添加到SKNodes。 视图不是节点,节点不是视图,可惜这是行不通的。 虽然您可以将UIKit元素添加到SKScene的视图属性,但是尽可能地将其添加到SKScene的视图属性中。 在我终于明白之前,我为此苦苦了好一会儿。

顺便说一句,我仍然混合UIKit和SpriteKit,但我以有限的方式这样做,它从来没有依赖添加节点的意见,反之亦然。