0

我正在開發一個圖形應用程序,它在主導航/選項卡視圖上顯示一個使用openGL呈現圖形的UIView。在該視圖下是一個UITableView,它顯示圖形上的元素列表以及一個添加按鈕。UITableView cellForRowAtIndexPath偶爾不會被調用?

偶爾,當用戶單擊另一個選項卡,然後返回到圖形視圖選項卡時,表視圖不會重繪。

我有一個[tableView reloadData]方法在導航控制器(也是表視圖的委託和數據源)viewDidAppear方法中調用。

numberOfSectionsInTableView和numberOfRowsInSection被調用,但cellForRowAtIndexPath並不是儘管後面的方法都返回正值。

這是一個間歇性問題,只發生在一些時間,但不清楚什麼(如果有的話)影響這一點。

有沒有人有任何想法?

應該快速添加;點擊或以其他方式與表格視圖進行交互,無論是否按照描述進行了故障,總是使其成功重繪。

[又]多一點信息;當它如上所述出錯時,調用前兩個而不是cellforRowetc方法,似乎要等到用戶與表格交互之後纔會最終調用cellForRowetc(前兩個方法未被調用)並重繪。

回答

0

我有一個UIActivityIndi​​cator,開始於一個單獨的線程,顯示何時向Web服務發出請求。 Web服務調用完成後,會向圖形控制器類發送通知,以停止並隱藏UIActivityIndi​​cator。在這種方法中,無論視圖是否可見,都會在表上調用reloadData,這似乎是導致問題的原因。

結論似乎不是要在表上調用reloadData,除非它是可見的。

相關問題