我有一个带有x个部分的tableView,每个部分都有一行。每行中都有接受输入的UIElement。输入来自核心数据。之前,我将输入追加到数组中,然后索引到数组中,但是我想直接/单独在cellForRowAtIndexPath中设置它们。由于CD提取需要一些时间才能完成,因此我需要“暂停” cellForRowAtIndexPath(直到coreData提取已发送完成的NSNotification为止。)
提取完成后,如何暂停并仅设置UILabel等。我需要为每个部分执行此操作。
任何帮助将不胜感激!谢谢。
我担心代码会混淆,所以请随时忽略它。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
let dashboardCell = CellList.sharedInstance.dashboardCell[userIndexForItem[indexPath.section]] as DasboardCell
dashBoardCellGlobalVariablesInstance.value = dashboardCell.cdFetchObject.queryCDValue()
<--PAUSE AND WAIT FOR NSNOTIFICATION
let value = cell.contentView.viewWithTag(5) as UILabel
value.text = dashBoardCellGlobalVariablesInstance.value
<-- More UI ELEMENTS -->
return cell
}
最佳答案
您需要重组您的方法。是的,用您的数据填充每个单元格,是的,但是您不想在等待通知时阻止UI。
收到完成通知时,请将有问题的数据存储到dataSource中,然后适当地重新加载tableView数据(有关如何,在何处,何时依赖于应用程序的正确答案)。
从UITableView类参考(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/):
重新加载表格视图
reloadData
reloadRowsAtIndexPaths:withRowAnimation:
reloadSections:withRowAnimation:
reloadSectionIndexTitles
关于ios - 如何在cellForRowAtIndexPath处暂停,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29377262/