Mir*_*bin 2 xcode uiwebview webview ios swift
我正在使用xcode在swift中编写一个webapp.我有一个问题"如何添加一个进度条,向我显示每个页面的加载?"
@IBOutlet var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string: "http://stackoverflow.com")
let request = NSURLRequest(URL: url)
webView.loadRequest(request)
}
Run Code Online (Sandbox Code Playgroud)
(对不起我的英语不好)
Sta*_*eam 14
你可以在这篇文章中找到一个很好的答案.您只需将进度条添加为webview的子视图即可.主要问题是进度条的准确性.建议的答案是从不断动画制作开始,在加载时阻止95%,当你的请求完成时,将它一直压缩到100%.
这是Swift的解决方案:
添加以下属性:
//Add this progress view via Interface Builder (IBOutlet) or programatically
let myProgressView: UIProgressView
var theBool: Bool
var myTimer: NSTimer
Run Code Online (Sandbox Code Playgroud)
这些功能将填充进度视图.你可以玩参数:
func funcToCallWhenStartLoadingYourWebview() {
self.myProgressView.progress = 0.0
self.theBool = false
self.myTimer = NSTimer.scheduledTimerWithTimeInterval(0.01667, target: self, selector: "timerCallback", userInfo: nil, repeats: true)
}
func funcToCallCalledWhenUIWebViewFinishesLoading() {
self.theBool = true
}
func timerCallback() {
if self.theBool {
if self.myProgressView.progress >= 1 {
self.myProgressView.hidden = true
self.myTimer.invalidate()
} else {
self.myProgressView.progress += 0.1
}
} else {
self.myProgressView.progress += 0.05
if self.myProgressView.progress >= 0.95 {
self.myProgressView.progress = 0.95
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16729 次 |
| 最近记录: |