UIView.animateWithDuration(2, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 6, options: [], animations: ({
self.background.center.x = self.view.frame.width + 600
self.PlayButton.center.x = self.view.frame.width + 600
self.infoButton.center.x = self.view.frame.width + 600
self.logo.center.x = self.view.frame.width + 600
self.infoHidden.center.x = self.view.frame.width + 600
self.settingsButton.center.x = self.view.frame.width + 600
self.shareButton.center.x = self.view.frame.width + 600
//self.adBanner.center.x = self.view.frame.width + 600
self.view.frame.width + 800
}), completion: nil)
let View2 = self.view as! SKView // View
View2.ignoresSiblingOrder = false // Perfomance
let Play = GameScene() // Game
Play.scaleMode = .ResizeFill // Scale
View2.presentScene(Play) // Present
为什么这段代码会返回异常"无法转换类型' UIView' (0x1f1ed90)到' SKView'"?该代码工作得更早,突然间它开始抛出异常。我的视图类在故事板中设置为SKView。奇怪的是,当我将iad实施到我的游戏中时,这个异常才开始自我抛出。有什么我想念的吗?
答案 0 :(得分:1)
我认为this thread会对你有帮助,特别是这句话
SKView是UIView的子类。 UIViewController的视图可以是任何视图 有点UIView对象,它没有特别是UIView 对象
请注意,如果视图不是,则此代码在运行时仍可能失败 SKView(例如,如果它实际上是一个UIView对象),所以你必须这样做 肯定的。
重点是,你正在进行的UIView可能不是一个SKView,而是一个UIView,所以你得到一个运行时异常。尝试使用可选的向下转换?并处理贬低失败的情况。