【发布时间】:2011-04-10 08:12:06
【问题描述】:
我正在开发一个应用程序,它处理来自网络的持续传入数据流,并提供许多不同的 UIView 供用户查看这些数据。
当基于来自网络的传入流更新某些模型数据时,我访问关联的 UIViewController 或 UITableViewController 并对其执行 -setNeedsDisplay(在 UIViewController 的情况下)或 -reloadData(在 UITableViewController 的情况下)。
有没有办法检查给定的 UIView 当前是否正在显示(不仅仅是正在加载),以便我只在用户当前正在查看该 UIView 时执行 -setNeedsDisplay 或 -reloadData?似乎在用户当前未查看的视图上调用 -setNeedsDisplay 或 reloadData 会浪费处理能力并且不利于电池寿命。当用户最终切换到之前已更新的视图时,对 -viewWillAppear 执行 -setNeedsDisplay 或 reloadData 会更有意义。
谢谢
【问题讨论】:
-
我无法添加其他答案,但现在视图控制器上有一个名为 isVisible 的属性
标签: iphone objective-c