如何在 Swift 的多个视图中使用一个活动指示器?

Posted

技术标签:

【中文标题】如何在 Swift 的多个视图中使用一个活动指示器?【英文标题】:How to use one activity indicator in several views in Swift? 【发布时间】:2021-08-15 04:37:03 【问题描述】:

我是 Swift 新手,所以请记住这一点。 我正在构建一个应用程序,它发送大量 API 调用需要很长时间,我只使用正常的活动指示器来让用户知道应用程序正在运行并且很好。

每次创建新视图都要创建新的活动指示器很繁琐,那么有什么办法可以避免每次都创建活动指示器吗? 有什么方法可以只使用一个可以在整个视图中使用的活动指示器?

提前谢谢你。

【问题讨论】:

【参考方案1】:

在每个屏幕上创建这样的新视图是完全可以的,它不会加载系统,所以你不需要重复使用它们

如果您有重复的视图设置代码,您可以将其移至此类扩展:

extension UIActivityIndicatorView 
    static func createGeneral() -> UIActivityIndicatorView 
        let activityIndicatorView = UIActivityIndicatorView(style: .large)
        
        // if you're using it with constraints
        activityIndicatorView.translatesAutoresizingMaskIntoConstraints = false
        
        activityIndicatorView.color = .black
        // and other setup you need
        
        return activityIndicatorView
    

用法:

let activityIndicatorView = UIActivityIndicatorView.createGeneralIndicator()

【讨论】:

以上是关于如何在 Swift 的多个视图中使用一个活动指示器?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 swift 在 WKWebView 的页面中间显示活动指示器?

如何使用Swift在iOS 8上显示带有文本的活动指示器?

无法在 API 调用结束时隐藏活动指示器

在 swift 4 中使用 webkit 在 webView 中导航时创建活动指示器

Swift 3 - 调用准备 segue 时视图不更新

将“活动指示器”添加到 TableView 并在 Swift 中恢复为“披露指示器”