Ios 加载隐藏/屏幕外UIWebView

Ios 加载隐藏/屏幕外UIWebView,ios,cocoa-touch,uiwebview,loading,off-screen,Ios,Cocoa Touch,Uiwebview,Loading,Off Screen,实际上,我这里有两个相关的问题,关于在UIWebView中加载请求的不同用例 对插入到视图层次结构中且其隐藏属性或其superview之一设置为YES的web视图调用-[UIWebView loadRequest://code>是否安全 在未插入视图层次结构的web视图上调用-[UIWebView loadRequest::是否安全 我特别感兴趣的是,在不可见的UIWebView中加载请求是否被认为是一种良好的做法,以及一旦请求成功/失败,是否会通知分配给UIWebView实例的委托。我问这个问

实际上,我这里有两个相关的问题,关于在
UIWebView
中加载请求的不同用例

  • 对插入到视图层次结构中且其隐藏属性或其superview之一设置为YES的web视图调用-
    [UIWebView loadRequest://code>是否安全
  • 在未插入视图层次结构的web视图上调用-
    [UIWebView loadRequest::
    是否安全

  • 我特别感兴趣的是,在不可见的
    UIWebView
    中加载请求是否被认为是一种良好的做法,以及一旦请求成功/失败,是否会通知分配给
    UIWebView
    实例的委托。我问这个问题的原因是,
    UIWebView
    类引用说“创建一个
    UIWebView
    对象,将其附加到一个窗口,并向其发送一个加载web内容的请求”,如果告诉应将
    UIWebView
    附加到窗口的部分使我怀疑上述方法是否可靠。

    我已成功地将[UIWebView loadRequest:]用于不在视图层次结构中的对象。我希望类引用只是假设视图将被显示,因为它可能是最常见的用例

  • 是的,在视图层次结构中插入的web视图上调用[UIWebView loadRequest:]是安全的。因为您将在视图中使用web。此外,如果您只在程序中提供URL,就足以获取

    [UIWebView loadRequest]的以下代码为

    NSString *strurl =@"http:www.google.com";
    NSURL *url=[NSURL urlWithString:strurl];
    NSURLRequest *urlrequest =[NSURLRequest requestWithUrl:url];
    [webView loadRequest:urlrequest];
    
  • 甚至在未插入视图层次结构的web视图上调用[UIWebView loadRequest:]也是安全的。因为您可以通过程序动态创建视图并为web视图编写代码


  • 它起作用了。只要不使用任何私有API并遵循HIG,该方法是完全可靠的。这不是一个坏的做法,只要它符合你的要求。如果您可以使用
    UIWebView
    hidden
    属性,那么您当然可以根据需要隐藏webView

    关于您下面的查询,它是根据句子上下文写在文档中的

    我问这个问题的原因是UIWebView类引用说“创建一个 UIWebView对象,将其附加到窗口,并向其发送加载请求 “web内容”,其中说明应使用UIWebView的部分 贴在窗户上让我怀疑上述方法是否正确 可靠

    下面是完整的上下文,这显然意味着要使用UIWebView在应用程序中显示网页,您必须以上述方式进行

    您可以使用UIWebView类在应用程序中嵌入web内容。 为此,只需创建UIWebView对象,将其附加到窗口, 并向其发送加载web内容的请求


    任何视图都会在某个时刻显示,问题在于开发人员是否应该在UIWebView实例中加载请求,然后显示它,还是显示然后加载。如果UIWebView不在视图层次结构中,则调用load request是安全的,委托方法将照常调用。调用webViewDidFinishLoad时,可以将UIWebView添加到视图层次结构中。至于这是否是一个好的实践,那么这取决于你试图用你的UI实现什么,但我不相信你有任何理由认为这会导致问题。你在两种情况下都说“它是安全的”,而没有参考任何文档或以某种方式对此进行争论。我知道它在实践中是有效的,但我更关心这些方法的可靠性。任何未记录的行为都可能在某个时刻发生变化,而苹果公司不会发出任何通知。如果你能为你的答案提供任何证据,那就太好了。你想要什么证据?一份文件的参考资料,为什么它是安全的,苹果工程师的评论,任何东西。通过这一个,你好,戴夫,不管怎样,如果你做了以上的事情,它不会有任何问题。事实上,一个可见的web视图需要插入到视图层次结构中,这一点太明显了,所以我只想加倍,实际上它不需要窗口来加载内容。到目前为止,它还可以工作,但可能会在任何时候停止,而不需要苹果公司的任何通知,因为这些细节没有记录在案。但我同意解决方案1似乎相当可靠。正如你自己所说,2是有效的,因此我想告诉你,如果2比1更适合你的要求,你可以使用2。如果苹果将来打算停止#2,那么我认为他们肯定会像在不赞成的行为方面那样通知我们。此外,如果他们没有通知就这样做,您可以始终在可用的beta XCode中进行测试。然后,如果你发现它停止了,那么提出bug以获得澄清,并用#1.很好的建议修复你的应用程序,尽管需要监控所有测试版,并在应用程序停止工作时重建应用程序。非常感谢。我有一个实用程序类,它保存UIWebView的一个实例,因为我想使用它将HTML内容呈现到一个图像中,然后缓存该图像。我在进行后续加载HTMLSTRING:调用时遇到了明确的问题。内容不完整。