在单元格中使用UIWebView的UITableView性能不佳

时间:2014-09-25 09:27:03

标签: ios objective-c uitableview uiwebview

我在单元格中有一个UITableView UIWebView。 我要显示的数据是从网上获取的,存储在数组中,然后通过UIWebView显示。我必须使用WebView,因为我有一些只能通过它来玩的MathJax。

当我滚动浏览UITableView时,如果WebView正在加载HTML ,我会在一分钟内得到糟糕的效果。

有什么方法可以解决这个问题吗?

我想到的是那种预先填充的webViews,但我不确定它是否可能。我在网上找不到任何有用的内容。

有什么想法吗?

编辑: 我之前没有添加过代码,因为这是一般性问题,其中包含UITabelView的任何UIWebView都会遇到此性能问题。但这是:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
     SuperTraenerHistoryCell *cell = (SuperTraenerHistoryCell*)[tableView  
dequeueReusableCellWithIdentifier:@"SuperTraenerHistoryCell"];

    if (cell == nil){
        NSArray* nib = [[NSBundle mainBundle] loadNibNamed:@"SuperTraenerHistoryCell" owner:self 
options:nil];
        cell = [nib objectAtIndex:0];
    }

    [cell.answer loadHTMLString:myAnswer.answer_text baseURL:[NSURL URLWithString:NSTemporaryDirectory()]];
}

SuperTraenerHistoryCell.h

@interface SuperTraenerHistoryCell : UITableViewCell

@property (strong, nonatomic) IBOutlet UIWebView *_answer;
@property (strong, nonatomic) IBOutlet UIImageView *correct;


@end

在webView中我显示数据,并在UIImageView中显示绿色或红色标记,如果问题的回答正确或错误。

1 个答案:

答案 0 :(得分:0)

我认为您的单元格的answer属性是WebView,这显然不是在tableviewcell中显示信息的最有效方式,因为加载内容是异步的。

如果是这样,由于您的内容似乎在您的应用中处于离线状态,请尝试使用NSAttributedText显示格式化文本或将您的内容拆分为UIImageViewUILabel,这将更快地显示。

无论如何,有这么少的信息,很难帮助你。也许如果您修改帖子并添加SuperTraenerHistoryCell的标题可能会非常有用。