ios - 如何将 UISlider 添加到不是 View Controller 主场景的 SKScene

标签 ios swift sprite-kit uikit uislider

我正在创建一个带有一个 View Controller 和多个 skscenes 的 Sprite Kit 游戏。基本上,应用程序加载 View Controller ,它加载菜单场景,然后我使用 SKTransitions 在场景之间切换。在创 build 置场景时,我希望能够使用某些 UIKit 元素,例如 UISlider - 但是,我只能让 UISlider 显示在菜单场景中。为了使 UISlider 仅显示在设置场景中,我究竟需要做什么?感谢您花时间阅读本文。

最佳答案

正如龙之骑士所说,最好尽可能避免在 SpriteKit 中使用 UIKit。

但是在某些情况下,UIKit 在 SpriteKit 中非常有用。例如,我使用 UICollectionViews 在我的一个游戏中显示我的世界和级别选择菜单,因为它是最好的选项(单元重用、出队、动画效果等)。

只需使用 SKScene 的 View 属性在特定场景中添加 UIKit 元素。

class MenuScene: SKScene {

     let slider = UISlider(frame: CGRect(x: 250, y: 250, width: 280, height: 20))

     override func didMoveToView(view: SKView) {
         loadSlider()
     }

     private func loadSlider() {
         ...
         view?.addSubview(slider) // if you are calling view outside of DidMoveToView it is an optional, so use ?
     }
}

当您将场景添加到您的 GameViewController 时,不要忘记再次删除它。

override func willMoveFromView(view: SKView) {
     slider.removeFromSuperview()
}

希望这对您有所帮助。

关于ios - 如何将 UISlider 添加到不是 View Controller 主场景的 SKScene,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39133042/

相关文章:

javascript - react native : TextInput with state and AsyncStorage

ios - 如何突然结束动画?

parse-platform - 使用 Swift 解析框架

ios - SpriteKit - 沿一个方向缩放

ios - 如何使用 Swift 在 UIWebView 上远程显示 PDF 文件?

iOS Instruments Allocation 和 Leaks 使 Xamarin 应用程序崩溃

ios - 保存最后一个 datePicker 选择

swift - 预设节点不与用户触摸的创建节点发生冲突

ios - 将事件监听器添加到基于回合的 ios 游戏时发出警告

swift - 使用相应的 sks 文件创建新的 swift 场景