0

我正在开发一个图形应用程序,它在主导航/选项卡视图上显示一个使用 openGL 呈现图形的 UIView。在该视图下方是一个 UITableView,它显示图表上的元素列表,以及一个添加按钮。

有时,当用户单击另一个选项卡,然后返回到图形视图选项卡时,表视图不会重绘。

我在导航控制器(也是表视图的委托和数据源)viewDidAppear 方法中调用了一个 [tableView reloadData] 方法。

numberOfSectionsInTableView 和 numberOfRowsInSection 被调用,但 cellForRowAtIndexPath 没有,尽管后两种方法都返回正值。

这是一个间歇性问题,仅在某些时候发生,但尚不清楚是什么(如果有的话)影响了这一点。

有没有人有任何想法?

[编辑] 应该快速添加;单击或以其他方式与 table view 交互,无论是否如描述的那样出错,总是会导致它成功重绘。

[再一次] 更多信息;当它如所描述的那样出现故障并调用前两个而不是 cellforRowetc 方法时,它似乎要等到用户与表格交互,然后才最终调用 cellForRowetc(然后不调用前两个方法)并重绘。

4

1 回答 1

0

我有一个 UIActivityIndi​​cator,在一个单独的线程上启动,它显示何时向 Web 服务发出请求。Web 服务调用完成后,会向图形控制器类发送通知以停止和隐藏 UIActivityIndi​​cator。在此方法中,无论视图是否可见,都会在表上调用 reloadData,这似乎是导致问题的原因。

结论似乎是不要在表上调用 reloadData ,除非它是可见的。

于 2010-05-27T14:22:07.257 回答