Sprite Kit UIActivityIndicator 不会停止动画
Sprite Kit UIActivityIndicator won't stop animating
我正在尝试预加载一组纹理图集,在此期间显示 UIActivityIndicator。加载纹理后,我想使用 .stopAnimating() 方法停止 activity 指示器。我插入了断点,发现编译器确实到达了 .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()
}
}
通常当您想要停止 activity 指标时,您只需调用 removeFromSuperview()
,因为让静态 activity 指标坐在那里什么都不做是不好的,仅此而已 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()
}
}
我正在尝试预加载一组纹理图集,在此期间显示 UIActivityIndicator。加载纹理后,我想使用 .stopAnimating() 方法停止 activity 指示器。我插入了断点,发现编译器确实到达了 .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()
}
}
通常当您想要停止 activity 指标时,您只需调用 removeFromSuperview()
,因为让静态 activity 指标坐在那里什么都不做是不好的,仅此而已 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()
}
}