如何保持当前页面直到下一页完全加载(ios UIWebview)
我有一个基于如何保持当前页面直到下一页完全加载(ios UIWebview),ios,iphone,uiwebview,Ios,Iphone,Uiwebview,我有一个基于UIWebview的应用程序, 当用户单击URL时,默认行为是立即显示空白页面,并等待页面加载 在加载下一页之前,是否可以保留当前页 谢谢你的帮助。我很好奇这个功能的必要性,我可能会同意的 尽管如此,这是可能的 使视图控制器成为UIWebView的代理 在webViewDidStartLoad:方法中,拍摄web视图的快照,并将结果视图添加到视图层次结构中的web视图上方 在webView的didfishload:和webView:didFailLoadWithError:方法中,只
UIWebview
的应用程序,
当用户单击URL时,默认行为是立即显示空白页面,并等待页面加载
在加载下一页之前,是否可以保留当前页
谢谢你的帮助。我很好奇这个功能的必要性,我可能会同意的 尽管如此,这是可能的
UIWebView
的代理webViewDidStartLoad:
方法中,拍摄web视图的快照,并将结果视图添加到视图层次结构中的web视图上方webView的didfishload:
和webView:didFailLoadWithError:
方法中,只需隐藏快照视图@interface ViewController () <UIWebViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property (nonatomic, strong) UIView *snapshotView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"https://google.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];
}
- (void)webViewDidStartLoad:(UIWebView *)webView {
self.snapshotView = [self.webView snapshotViewAfterScreenUpdates:NO];
self.snapshotView.frame = self.webView.frame;
[self.view insertSubview:self.snapshotView
aboveSubview:self.webView];
self.snapshotView.hidden = NO;
// THIS IS JUST FOR DEMONSTRATION PURPOSES SO
// YOU CAN SEE THE LOADING HAPPENING BEHIND
// THE SNAPSHOT VIEW
self.snapshotView.alpha = 0.8;
NSLog(@"Display snapshot");
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
self.snapshotView.hidden = YES;
NSLog(@"Hide snapshot");
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
self.snapshotView.hidden = YES;
NSLog(@"Hide snapshot due to error");
}
@end
@界面视图控制器()
@属性(弱、非原子)ibuiwebview*webView;
@属性(非原子,强)UIView*快照视图;
@结束
@实现视图控制器
-(无效)viewDidLoad{
[超级视图下载];
NSURL*url=[NSURL URLWithString:@”https://google.com"];
NSURLRequest*request=[nsurlRequestRequestWithURL:url];
[self.webView加载请求:请求];
}
-(void)webView加载:(UIWebView*)webView{
self.snapshotView=[self.webView SnapshotViewAfterScreen更新:否];
self.snapshotView.frame=self.webView.frame;
[self.view插入子视图:self.snapshotView
子视图:self.webView];
self.snapshotView.hidden=否;
//这只是为了演示,所以
//你可以看到加载发生在后面
//快照视图
self.snapshotView.alpha=0.8;
NSLog(“显示快照”);
}
-(无效)webViewDidFinishLoad:(UIWebView*)webView{
self.snapshotView.hidden=是;
NSLog(@“隐藏快照”);
}
-(void)webView:(UIWebView*)webView失败加载错误:(NSError*)错误{
self.snapshotView.hidden=是;
NSLog(@“由于错误而隐藏快照”);
}
@结束
使用NSTimer&Activity指示器等待页面加载