【发布时间】:2010-10-13 23:28:39
【问题描述】:
我的 tableView 由 5-10 个单元格组成,每个单元格都包含一个图像滚动视图。问题是当单元格离开屏幕时,它会删除所有图像,然后在单元格返回屏幕时重新加载它们。我知道这样做是出于性能原因,但在这种情况下,它看起来很糟糕。有没有办法防止单元格离开屏幕时卸载?
【问题讨论】:
标签: iphone ipad uitableview
我的 tableView 由 5-10 个单元格组成,每个单元格都包含一个图像滚动视图。问题是当单元格离开屏幕时,它会删除所有图像,然后在单元格返回屏幕时重新加载它们。我知道这样做是出于性能原因,但在这种情况下,它看起来很糟糕。有没有办法防止单元格离开屏幕时卸载?
【问题讨论】:
标签: iphone ipad uitableview
是的,当然。一般策略是自己预加载所有UITableViewCell 对象。您可以在viewDidLoad 中执行此操作,然后在viewDidUnload 中卸载它们,将它们存储在NSMutableArray 中,然后在tableView:cellForRowAtIndexPath: 的实现中引用数组中的适当索引。
【讨论】:
你应该有一个很好的理由不按照 Apple 的方式做事。有 5-10 个单元格,听起来你没有充分的理由。也许您可以使用 NSOperationQueue 中的后台线程来改善单元格的加载。
这篇文章可能会有所帮助:
https://stackoverflow.com/questions/1408997/dynamic-uiimage-content-loading-in-uitableview-code
【讨论】:
NSOperationQueue(单数)不是适合这项工作的工具,这里
感谢您的补充说明。这很有帮助。通过根据 uitaleviewcells 的高度计算 uitableview 的高度,您可以避免遇到的问题,而无需禁用可重用单元格。此外,如果您从网络重新加载单元格,您肯定会从一些缓存中受益,如前所述。
【讨论】: