Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保持当前页面直到下一页完全加载(ios UIWebview)_Ios_Iphone_Uiwebview - Fatal编程技术网

如何保持当前页面直到下一页完全加载(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指示器等待页面加载