所以我创建了一个 3x10 的精灵网格,它超出了屏幕的底部边缘。我添加了一个 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 文件中,而应该是单独的,但这只是一个测试项目。
谢谢 :-)
你遇到了我困扰了一段时间的问题。根本问题是您无法将 SKNode 添加到 UIKit 视图,也无法将 UIKit 视图添加到 SKNode。视图不是节点,节点也不是视图,遗憾的是这是行不通的。虽然您可以将 UIKit 元素添加到 SKScene 的 view 属性中,但这只是您所能做到的。我在这个问题上挣扎了很长一段时间才最终得到它。
顺便说一句,我仍然混合 UIKit 和 SpriteKit,但我以有限的方式这样做,并且它从不依赖于向视图添加节点,反之亦然。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)