主要原因是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时就不会崩溃了

iOS开发 UIActivityIndicatorView 在子线程崩溃

原文地址: http://www.cveoy.top/t/topic/ikvi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录