在我的UITableViewCells中,我想根据事件是否发生来显示UIImageView。在我的自定义单元格中,我有一个分配给UIImageView的图像(它是一个静态的本地图像)。然后我将imageview设置为隐藏,直到我想要显示它,然后我做imageview.hidden = NO;
我的问题是这是否会影响UITableView的性能?我应该只在需要时将UIImageView绘制为子视图吗?谢谢!
答案 0 :(得分:1)
做“imageview.hidden = NO;
”事情不仅更健康,而且性能更好。
想一想:如果向该单元格添加子视图,则必须在单元格被回收之前将其删除,以便在显示不同的行时显示。在每次调用“imageview.hidden = YES
”方法的开头,只需执行“cellForRowAtIndex:
”就可以轻松删除任何不需要的,以前添加的子视图。
答案 1 :(得分:0)
由于您将回收您的单元格,因此请使用UIImage imageNamed
缓存本地图像,然后将其隐藏起来。您将获得一次图像加载的成本,然后平滑滚动。最大的性能影响将是从磁盘初始获取,因此最好在用户需要看之前将其取出
答案 2 :(得分:0)
我在很大程度上同意迈克尔的观点,但确实有一点需要注意。
我会使用imageview.hidden = NO;
话虽如此,但在所有情况下都可能并不是最好的。
实际性能实际上取决于您实际可见的图像视图数量,在风格上更直接地使视图可见。但是,如果使图像可见是一个相对不常见的事件,那么您可以考虑延迟加载图像,直到您需要添加它。
例如,如果每50个单元格中只有2个实际上获得了可见图像,那么延迟加载它可能会更好。