我正在开发一个图形应用程序,它在主导航/选项卡视图中显示一个使用openGL渲染图形的UIView。在该视图下方是一个UITableView,它显示图表上的元素列表和一个添加按钮。
有时,当用户单击另一个选项卡,然后返回到图表视图选项卡时,表视图不会重新绘制。
我在导航控制器中调用[tableView reloadData]方法(也是表视图的委托和数据源)viewDidAppear方法。
调用numberOfSectionsInTableView和numberOfRowsInSection,但是尽管后两种方法都返回正值,但是cellForRowAtIndexPath没有。
这是一个间歇性的问题,只在某些时候发生,但目前尚不清楚(如果有的话)会对此产生什么影响。
有没有人有任何想法?
[编辑]应该快速添加;单击或以其他方式与表视图交互,无论是否出现故障,始终会使其成功重绘。
[再次]更多信息;当它如上所述出错并且调用前两个而不是cellforRowetc方法时,似乎要等到用户在最终调用cellForRowetc之前与表交互(前两个方法不被调用)并重新绘制。
答案 0 :(得分:0)
我有一个UIActivityIndicator,在一个单独的线程上启动,显示何时向Web服务发出请求。完成Web服务调用后,会向图控制器类发送通知以停止和隐藏UIActivityIndicator。在这个方法中,无论视图是否可见,都在表上调用reloadData,这似乎导致了问题。
结论似乎不是在表上调用reloadData,除非它可见。