Swift 预加载纹理地图集完成处理程序不工作
我有一个UIImageView供用户查看(看起来几乎像一个启动屏幕),这样我就可以预加载我的纹理地图集 但似乎在完成块中,即使我说“removefromsuperview”,它也不会这样做 我知道纹理已经加载完毕,因为如果我点击屏幕,UIImageView就会消失,我的游戏也会开始,但它不会因为某种奇怪的原因自行消失 这是我的GameViewController中的viewDidLoad:Swift 预加载纹理地图集完成处理程序不工作,swift,uiimageview,texture-atlas,Swift,Uiimageview,Texture Atlas,我有一个UIImageView供用户查看(看起来几乎像一个启动屏幕),这样我就可以预加载我的纹理地图集 但似乎在完成块中,即使我说“removefromsuperview”,它也不会这样做 我知道纹理已经加载完毕,因为如果我点击屏幕,UIImageView就会消失,我的游戏也会开始,但它不会因为某种奇怪的原因自行消失 这是我的GameViewController中的viewDidLoad: //Configure the View let skView = view as! SKView
//Configure the View
let skView = view as! SKView
skView.multipleTouchEnabled = false
self.view.exclusiveTouch = false
//Create and Configure the scene
scene = GameScene(size: skView.bounds.size)
scene.scaleMode = .AspectFill
//Load "SPLASH SCREEN"
let image: UIImage = UIImage(named: "ViewControllerImage")!
GameViewController.splashView = UIImageView(image: image)
GameViewController.splashView!.frame = CGRectMake(0,0,self.view.bounds.width,self.view.bounds.height)
self.view.addSubview(GameViewController.splashView!)
SKTextureAtlas.preloadTextureAtlases([GameViewController.diploTextureAtlas,GameViewController.bieberTextureAtlas,GameViewController.skrillexTextureAtlas,GameViewController.sunTextureAtlas], withCompletionHandler: { () -> Void in
print("Completo")
GameViewController.splashView?.removeFromSuperview()
skView.presentScene(self.scene)
})
请尝试以下代码:
//Configure the View
let skView = view as! SKView
skView.multipleTouchEnabled = false
self.view.exclusiveTouch = false
//Create and Configure the scene
scene = GameScene(size: skView.bounds.size)
scene.scaleMode = .AspectFill
//Load "SPLASH SCREEN"
let image: UIImage = UIImage(named: "ViewControllerImage")!
GameViewController.splashView = UIImageView(image: image)
GameViewController.splashView.tag = 666
GameViewController.splashView!.frame = CGRectMake(0,0,self.view.bounds.width,self.view.bounds.height)
self.view.addSubview(GameViewController.splashView!)
SKTextureAtlas.preloadTextureAtlases([GameViewController.diploTextureAtlas,GameViewController.bieberTextureAtlas,GameViewController.skrillexTextureAtlas,GameViewController.sunTextureAtlas], withCompletionHandler: { () -> Void in
print("Completo")
for view in self.view!.subviews {
if view.tag == 666 {
view.removeFromSuperview()
}
}
skView.presentScene(self.scene)
})
您还可以使用以下工具更改“循环”:
if let viewWithTag = self.view.viewWithTag(666) {
viewWithTag.removeFromSuperview()
}
啊,不,这似乎不起作用。为了从屏幕上删除启动视图,出于某些原因,我仍然需要点击屏幕,因为某些原因,加载纹理后它不会消失。当我点击以摆脱闪屏时,这也会启动我的游戏,就好像闪屏在我的游戏场景中一样。很奇怪