我搜索ios 8 swift 2解决方案,以便在我的网站在后台加载时显示活动指示器。
目前,我有这段代码:
override func viewDidLoad() {
super.viewDidLoad()
var url = "http://www.google.de"
let requestURL = NSURL(string:url)
let request = NSURLRequest(URL: requestURL!)
webView.loadRequest(request) }
问题是,在加载webseite时,视图控件是整个时间白色。我希望你能帮助我:)。
答案 0 :(得分:2)
您需要在控制器的视图中添加活动指示器。查看本教程:http://www.ioscreator.com/tutorials/activity-indicator-tutorial-ios8-swift
答案 1 :(得分:2)
将活动指示器视图拖到ViewController类,并在此行// webView.loadRequest(request) //之后添加以下代码,或者加载该URL的行。
<强> activityIndicatorView.startAnimating()强>
停止动画使用
<强> activityIndicatorView.stopAnimating()强>
您还可以使用停止和开始按钮或任何其他操作。
答案 2 :(得分:1)
您可以使用MBProgressHUD库在swift中加载指标,也可以检查How to use MBProgressHUD with swift是否在您的情况下正常工作。
答案 3 :(得分:0)
如果您愿意,请参考此答案
https://stackoverflow.com/a/65136127/2131039
在Swift 5中进行了测试,您可以使用以下简单扩展名:
// Activity Indicator Extension
var vSpinner : [UIView] = []
extension UIViewController {
func showSpinner(onView : UIView) {
let spinnerView = UIView.init(frame: onView.bounds)
// spinnerView.backgroundColor = UIColor.init(red: 0.8, green: 0.8, blue: 0.8, alpha: 0.9)
let ai = UIActivityIndicatorView.init(style: .medium)
ai.startAnimating()
ai.center = spinnerView.center
DispatchQueue.main.async {
spinnerView.addSubview(ai)
onView.addSubview(spinnerView)
}
vSpinner.append(spinnerView)
}
func removeSpinner() {
DispatchQueue.main.async {
vSpinner.popLast()?.removeFromSuperview()
}
}
}
在您的异步任务中,请使用以下两个方便的男孩:
showSpinner(onView: self.view)
记住要用任何所需的视图替换 self.view
self.removeSpinner()
卸下加载指示器: