gpt4 book ai didi

ios - 全局加载图标 Swift

转载 作者:行者123 更新时间:2023-12-01 17:35:37 25 4
gpt4 key购买 nike

我正在我的 extension.swift 文件中制作一个加载图标。我相信我们不需要使用任何第三方库来加载图标。但是我不能在扩展文件中存储任何值。如果我不存储,它看起来像

import UIKit

extension UIViewController {

func startLoading() {
let activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
activityIndicator.center = self.view.center
activityIndicator.hidesWhenStopped = true
activityIndicator.style = .gray
DispatchQueue.main.async {
self.view.addSubview(activityIndicator)
}
activityIndicator.startAnimating()
UIApplication.shared.beginIgnoringInteractionEvents()
}

func stopLoading() {
let activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
DispatchQueue.main.async {
activityIndicator.stopAnimating()
}
UIApplication.shared.endIgnoringInteractionEvents()
}
}

所以在你的 View Controller 中,你可以直接调用 startLoading() 或 stopLoading()。但是 stopLoading 不起作用。这是因为它没有访问由 startLoading 启动的变量。有什么办法可以解决这个问题吗?非常感谢你们!

最佳答案

您重新创建事件指示器,这就是它不起作用的原因。

此外,您还有转换到新 View Controller 的问题,因此 self.view将不再包含事件指示器。

所以我建议你创建另一个 UIWindow然后放在上面,添加一个 View 和事件指示器,然后当stopLoading()被调用,你找那个UIWindow并删除整个 window如果它存在。

关于ios - 全局加载图标 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58725920/

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