我必须在表单前加上一些“富文本”说明*;并认为将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];
我找到了2个丑陋的解决方法,但我希望有人有更好的解决方案;因为我的解决方法使代码真的搞得一团糟:
在制作电影的前一个屏幕上
UIMYSCREENViewController,调用一个
[vc
preloadWebViewWithDelegate:self];
制作webview的方法
使用调用者作为委托。
然后呼叫者保留vc和
等待webview发送它
webviewDidFinishLoad
方法,at
哪个时候它可以呈现视图
并释放vc。
调用视图可以进行webview, 等待它完成,然后创建 新视图并将webview传递给它。
无论如何,这两种“解决方案”让我有点唠叨,所以我希望其他人找到更好的方法。
(*说明书大多是简单的,带有一些项目符号的样式文字(没有图像或过于激进的样式);但它需要大约14个精心对齐的UILabel视图才能在没有webview的情况下模拟这一点 - 并且受制于客户想要改变信息。)
答案 0 :(得分:1)
我会创建另一个独立的模型或控制器对象来创建和保留webview,希望在更高级别和之前(可能在app init期间)显示带有可以调出webview的UI的视图。
将此视为与动作游戏的预暂存资源相同,以便在游戏循环期间不必加载它们,这是一种常见的设计模式。
答案 1 :(得分:0)