Как добавить UISlider в SKScene, который не является главной сценой View Controller
Я создаю игру Sprite Kit с одним контроллером представления и несколькими сценами. По сути, приложение загружает контроллер представления, который загружает сцену меню, а затем я использую SKTransitions для перехода между сценами. При создании сцены настроек я хотел бы иметь возможность использовать некоторые элементы UIKit, такие как UISlider - однако я могу только когда-либо заставить UISlider появляться на сцене меню. Что именно мне нужно сделать, чтобы UISlider отображался только на сцене настроек? Спасибо, что нашли время, чтобы прочитать это.
1 ответ
Как сказал Knight of dragon, лучше всего избегать использования UIKit в SpriteKit.
Однако в некоторых случаях UIKit очень полезен в SpriteKit. Например, я использую UICollectionViews, чтобы показать свое меню выбора мира и уровня в одной из моих игр, потому что это самый хороший вариант (повторное использование ячеек, снятие очереди, анимационные эффекты и т. Д.).
Просто используйте свойство view SKScene, чтобы добавить элементы 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()
}
Надеюсь это поможет.