Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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
Iphone 如何防止UIWebView的延迟显示_Iphone_Ios_Uiwebview - Fatal编程技术网

Iphone 如何防止UIWebView的延迟显示

Iphone 如何防止UIWebView的延迟显示,iphone,ios,uiwebview,Iphone,Ios,Uiwebview,我必须在表格前面加上一些“富文本”说明*;并认为将UIWebView添加到tableview的标题中会起作用。HTML是我的资源文件夹中的一个小文件,CSS是文件中的一个样式标记;所以这一切都很好,而且是独立的 问题是,视图在中转换;然后,在一个小的延迟之后,webview的内容出现了。效果是不和谐的,我不认为隐藏视图并在它准备好时将其淡入是更可取的 我正在使用下面的代码在我的viewDidLoad方法中创建视图 UIWebView * wv = [[UIWebView alloc] initW

我必须在表格前面加上一些“富文本”说明*;并认为将UIWebView添加到tableview的标题中会起作用。HTML是我的资源文件夹中的一个小文件,CSS是文件中的一个样式标记;所以这一切都很好,而且是独立的

问题是,视图在中转换;然后,在一个小的延迟之后,webview的内容出现了。效果是不和谐的,我不认为隐藏视图并在它准备好时将其淡入是更可取的

我正在使用下面的代码在我的
viewDidLoad
方法中创建视图

UIWebView * wv = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, HEADER_HEIGHT)];
[wv setBackgroundColor:[UIColor clearColor]];
[wv setOpaque:NO];
NSString *path = [[NSBundle mainBundle] pathForResource:@"HeaderMsg" ofType:@"html"];
assert(path != nil);
NSData *htmlData = [NSData dataWithContentsOfFile:path];
[wv loadData:htmlData MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:nil];
[self.tableView setTableHeaderView:wv];
[wv release];
我发现了两个丑陋的解决办法,但我希望有人有更好的解决办法;由于我的变通方法将代码弄得一团糟:

  • 在上一个屏幕上,当您进行 UIMYSCREENViewController,呼叫
    [vc
    预加载WebViewWithDelegate:self]
    方法,该方法将使webview
    将调用方用作委托。
    然后调用方保留vc和
    等待webview向其发送消息
    
    webviewDidFinishLoad
    方法,位于 它什么时候可以呈现视图 并发布vc

  • 调用视图可以使webview, 等待它完成,然后创建 新建视图并将webview传递到其中

  • 无论如何,这两个“解决方案”都让我有点恶心,所以我希望其他人能找到更好的方法


    (*说明大多是简单的样式文本,带有一些要点(没有图像或过于激进的样式);但在没有网络视图的情况下,需要大约14个仔细对齐的UILabel视图来模拟这一点,并且可能会受到想要更改消息的客户的突发奇想的影响。)

    我将创建另一个独立的模型或控制器对象来创建和保留webview,希望在更高的级别上,以及在(可能在app init期间)使用可以显示webview的UI显示视图之前


    将其视为动作游戏的预暂存资源,这样它们就不必在游戏循环期间加载,这是一种常见的设计模式。

    我将创建另一个独立的模型或控制器对象来创建和保留webview,希望在更高级别之前(可能在app init期间)使用可以显示webview的UI显示视图

    将其视为动作游戏的预暂存资源,这样它们就不必在游戏循环期间加载,这是一种常见的设计模式。

    考虑使用此功能

    考虑使用此

    这是我的选择#2,以及代码当前的功能。将预加载延迟从“操作”中移到应用程序启动中是一个不错的选择。不幸的是,当我显示这个视图时;这是用户将看到的第一个视图-因此我无需将webview预加载移动到离使用它的视图更远的位置。我仍然希望有人会推荐一种更干净的解决方案,但我已经把文档翻了一遍,怀疑没有。我考虑过使用performSelector:withObject:afterDelay在初始化后约700毫秒显示视图。至少我没有代码来描述散布在各处的风景。如果明天没有更好的解决方案;我会接受你的答案。这是我的选择#2,以及代码当前的功能。将预加载延迟从“操作”中移到应用程序启动中是一个不错的选择。不幸的是,当我显示这个视图时;这是用户将看到的第一个视图-因此我无需将webview预加载移动到离使用它的视图更远的位置。我仍然希望有人会推荐一种更干净的解决方案,但我已经把文档翻了一遍,怀疑没有。我考虑过使用performSelector:withObject:afterDelay在初始化后约700毫秒显示视图。至少我没有代码来描述散布在各处的风景。如果明天没有更好的解决方案;我接受你的回答。