UITableViewCell中的UIWebView用于显示图标

时间:2011-03-13 23:43:02

标签: cocoa-touch ios

我在UITableViewCell定义中使用UIWebView来显示项目图标:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (!cell) {
    cell = [[[NSBundle mainBundle] loadNibNamed:@"PostCell" owner:self options:nil] objectAtIndex:0];
}
NSDictionary *post = [posts objectAtIndex:indexPath.row];

UIWebView *iconWebView = (UIWebView*)[[cell contentView] viewWithTag:1];
[iconWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[post objectForKey:@"mMediumResImage"]] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0f]];

mMediumResImage是指向大小约为40-60 kb的图像的网址。

UITableView持有的行数是~20-30。

除了查看图标之外,没有图标的预期功能,没有用户交互。我宁愿使用UIWebView而不是设置一个队列来将每个图标加载到一个数组中,要求我跟踪我的加载过程,完成后要更新的索引路径等等。这个方法允许我快速和只需显示一个图标。

是否禁止使用UIWebView?

如果是这样,你建议作为替代方案?

1 个答案:

答案 0 :(得分:0)

这对我来说似乎有点沉重。我建议你从apple:LazyTableImages学习这段示例代码。你现在拥有的是工作,所以这很好。当你有时间时,回过头来使用该样本中说明的技术对其进行优化。

LazyTableImages示例包含一个带有顶级iPhone应用程序的UITableView。它从RSS提要中获取应用程序及其图标。应用程序图标根据需要“延迟加载”,因此列表将快速显示并平滑滚动。 IMO,非常值得研究他们在那里所做的事情。