iOS开发 UIActivityIndicatorView 在子线程崩溃
主要原因是UIActivityIndicatorView只能在主线程中使用,如果在子线程中使用,会导致崩溃。
解决办法是在子线程中使用UIActivityIndicatorView时,使用GCD将UI操作切回主线程。具体操作如下:
// 在子线程中执行耗时操作
DispatchQueue.global().async {
// 开始显示UIActivityIndicatorView
DispatchQueue.main.async {
// 切回主线程,显示UIActivityIndicatorView
let activityIndicator = UIActivityIndicatorView(style: .gray)
activityIndicator.center = self.view.center
activityIndicator.startAnimating()
self.view.addSubview(activityIndicator)
}
// 执行耗时操作
DispatchQueue.main.async {
// 切回主线程,结束显示UIActivityIndicatorView
activityIndicator.stopAnimating()
activityIndicator.removeFromSuperview()
}
}
这样在子线程中使用UIActivityIndicatorView时就不会崩溃了
原文地址: http://www.cveoy.top/t/topic/ikvi 著作权归作者所有。请勿转载和采集!