NJKWebViewProgress 是 UIWebView 的进度界面库。目前 UIWebView 没有官方的进度界面。您可以使用此模块为您的内嵌浏览器实现进度条。
NJKWebViewProgress 不使用 CocoaTouch 的私有方法。它是 AppStore 兼容的。
实例化 NJKWebViewProgress
并设置 UIWebViewDelegate
。如果您设置了 webViewProxyDelegate
,则 NJKWebViewProgress
应作为一个代理对象执行。
_progressProxy = [[NJKWebViewProgress alloc] init]; // instance variable
webView.delegate = _progressProxy;
_progressProxy.webViewProxyDelegate = self;
_progressProxy.progressDelegate = self;
当 UIWebView 开始加载时,NJKWebViewProgress
调用代理方法并传回进度值。
-(void)webViewProgress:(NJKWebViewProgress *)webViewProgress updateProgress:(float)progress
{
[progressView setProgress:progress animated:NO];
}
progressProxy.progressBlock = ^(float progress) {
[progressView setProgress:progress animated:NO];
};
您可以通过将 progress
值与提供的常量之一进行比较来确定文档的当前状态
-(void)webViewProgress:(NJKWebViewProgress *)webViewProgress updateProgress:(float)progress
{
if (progress == NJKInteractiveProgressValue) {
// The web view has finished parsing the document,
// but is still loading sub-resources
}
}
此仓库包含 iOS 7 Safari 风格的进度条 NJKWebViewProgressView
。您可以选择 NJKWebViewProgressView
、UIProgressView
或自定义进度条。