我需要遍历不同部分的tableview单元格来计算每个部分中的内容;但是,当我尝试这样做时:
CustomCell * c = (CustomCell *)[self.table cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:i]
如果“i”部分不可见,我无法获取内容。
我必须说我想在每个单元格中计算的内容在调用calculate方法之前会有所不同,所以我无法填充tableview然后计算。
有什么想法吗?
答案 0 :(得分:3)
您不应该根据UITableViewCell
个对象的内容执行计算,因为它们基本上属于 presentation 层;表示层中不应进行任何计算,只能隐藏和显示内容。
对于计算,您应该直接转到UITableViewDataSource
获取其数据的图层(可能是您的模型类)并在那里进行计算。更好的是,将计算移动到模型层,并提出一种按需获取它的方法。
如果您要修改其他人编写的现有代码,请首先检查tableView:cellForRowAtIndexPath:
中的UITableViewDataSource
方法,以查看其获取数据的位置。据推测,无论是否在屏幕上显示,该地点都有可用的所有数据。