当我切换SKScenes时,为什么我的UIScrollView / SubView会一直显示?

时间:2017-06-27 21:09:11

标签: swift uiscrollview sprite-kit

所以我的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就在那里。

1 个答案:

答案 0 :(得分:0)

您正在将UIScrollView添加到SKView(而不是场景)。场景也被添加到SKview中。切换场景时,滚动视图仍在SKView中。

这不是你应该如何处理这个问题。我个人不喜欢混合UIKit和Spritekit。特别是因为在Spritekit中创建滚动面板非常容易。在Spritekit How can I make my level menu scrollable vertically?中有很多关于如何创建滚动面板的例子(缺点是你需要自己滚动代码而不是UIScrollView为你做这个)

通常在Spritekit中创建游戏时,您会创建一个场景并将其添加到SKView中。然后创建任何游戏对象并将其添加到场景中。这样当场景被摧毁时,对象将被摧毁。

如果你必须在UIKit中创建它,它会被添加到视图中,但你必须从视图中手动删除它,因为破坏场景不会影响它。