隐藏图像与稍后绘制它的目标c

时间:2014-02-13 20:49:32

标签: ios objective-c uitableview

在我的UITableViewCells中,我想根据事件是否发生来显示UIImageView。在我的自定义单元格中,我有一个分配给UIImageView的图像(它是一个静态的本地图像)。然后我将imageview设置为隐藏,直到我想要显示它,然后我做imageview.hidden = NO;

我的问题是这是否会影响UITableView的性能?我应该只在需要时将UIImageView绘制为子视图吗?谢谢!

3 个答案:

答案 0 :(得分:1)

做“imageview.hidden = NO;”事情不仅更健康,而且性能更好。

想一想:如果向该单元格添加子视图,则必须在单元格被回收之前将其删除,以便在显示不同的行时显示。在每次调用“imageview.hidden = YES”方法的开头,只需执行“cellForRowAtIndex:”就可以轻松删除任何不需要的,以前添加的子视图。

答案 1 :(得分:0)

由于您将回收您的单元格,因此请使用UIImage imageNamed缓存本地图像,然后将其隐藏起来。您将获得一次图像加载的成本,然后平滑滚动。最大的性能影响将是从磁盘初始获取,因此最好在用户需要看之前将其取出

答案 2 :(得分:0)

我在很大程度上同意迈克尔的观点,但确实有一点需要注意。 我会使用imageview.hidden = NO;话虽如此,但在所有情况下都可能并不是最好的。

实际性能实际上取决于您实际可见的图像视图数量,在风格上更直接地使视图可见。但是,如果使图像可见是一个相对不常见的事件,那么您可以考虑延迟加载图像,直到您需要添加它。

例如,如果每50个单元格中只有2个实际上获得了可见图像,那么延迟加载它可能会更好。