gpt4 book ai didi

swift - Sprite Kit UIActivityIndi​​cator 不会停止动画

转载 作者:搜寻专家 更新时间:2023-10-31 23:01:10 24 4
gpt4 key购买 nike

我正在尝试预加载纹理图集数组,在此期间显示 UIActivityIndi​​cator。加载纹理后,我想使用 .stopAnimating() 方法停止事件指示器。我插入了断点,发现编译器确实到达了 .stopAnimating() 方法,但是没有任何反应……指示器继续……

我在这里做错了什么?

class Menu: SKScene {

var activityInd: UIActivityIndicatorView!

override func didMoveToView(view: SKView) {

activityInd = UIActivityIndicatorView(activityIndicatorStyle: .WhiteLarge)
activityInd.center = CGPointMake(self.frame.midX, self.frame.midY)
activityInd.startAnimating()
scene!.view?.addSubview(self.activityInd)

SKTextureAtlas.preloadTextureAtlases([saxAtlas, saxIdleAtlas, drumAtlas, drumIdleAtlas, pianoAtlas, pianoIdleAtlas, bassAtlas]) { () -> Void in
self.activityInd.stopAnimating()
}
}

最佳答案

通常,当你想停止一个事件指示器时,你只需调用 removeFromSuperview(),因为让一个静态事件指示器坐在那里什么都不做是不好的,而这就是 stopAnimating() 给你。

您还应该在主线程上调用此方法,因为 preloadTextureAtlases 是后台任务,几乎任何以“UI”为前缀的东西都需要在主线程上运行。

SKTextureAtlas.preloadTextureAtlases([saxAtlas, saxIdleAtlas, drumAtlas, drumIdleAtlas, pianoAtlas, pianoIdleAtlas, bassAtlas]) { () -> Void in

dispatch_async(dispatch_get_main_queue()) { () -> Void in
self.activityInd.stopAnimating()
}

}

关于swift - Sprite Kit UIActivityIndi​​cator 不会停止动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34910334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com