所以我的UIScrollView / Subview出现问题。每当我点击"返回"在我的商店场景中的按钮,它进入主菜单,但滚动视图仍然存在。我该如何解决?
主菜单屏幕单击后退按钮(https://i.stack.imgur.com/5yVyc.png)
之前店铺场景右下角有后退按钮 (https://i.stack.imgur.com/Km3zi.png]
单击后退按钮后的主菜单场景 (https://i.stack.imgur.com/IT6Q0.png)
代码:
var scrollView = UIScrollView()
let frame = CGRect(x: 0, y: 0, width: self.frame.size.width, height: self.frame.size.height)
scrollView = UIScrollView(frame: frame)
scrollView.backgroundColor = UIColor.clear
scrollView.contentSize = CGSize(width: self.frame.size.width, height: self.frame.size.height*4)
scrollView.isPagingEnabled = false
self.view?.addSubview(scrollView)
当我切换SKScenes时,UIViews就在那里。
答案 0 :(得分:0)
您正在将UIScrollView添加到SKView(而不是场景)。场景也被添加到SKview中。切换场景时,滚动视图仍在SKView中。
这不是你应该如何处理这个问题。我个人不喜欢混合UIKit和Spritekit。特别是因为在Spritekit中创建滚动面板非常容易。在Spritekit How can I make my level menu scrollable vertically?中有很多关于如何创建滚动面板的例子(缺点是你需要自己滚动代码而不是UIScrollView为你做这个)
通常在Spritekit中创建游戏时,您会创建一个场景并将其添加到SKView中。然后创建任何游戏对象并将其添加到场景中。这样当场景被摧毁时,对象将被摧毁。
如果你必须在UIKit中创建它,它会被添加到视图中,但你必须从视图中手动删除它,因为破坏场景不会影响它。