2012-12-20 30 views
0

我需要遍历不同部分中的tableview单元格来计算每个单元格中的东西;但是当我尝试这样做:得到所有的tableview单元格,甚至不可见

CustomCell * c = (CustomCell *)[self.table cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:i] 

如果部分“i”是不可见的,我不能让里面的内容。

我必须说我想在每个单元格中计算的内容会在调用calculate方法之前发生变化,所以我无法填充tableview然后计算。

任何想法?

+0

如果你告诉什么类型的计算,那么我们可以建议你的方式,否则获取所有单元几乎不可能,因为TableView通常配置为重用单元,这意味着它不会创建单元数等于行。 –

回答

3

你不应该执行基于UITableViewCell对象的内容计算,因为他们从根本上属于呈现层;在表示层中不应该进行计算,只能隐藏和显示事物。

对于计算,您应该直接转到您的UITableViewDataSource获取其数据的层(假定这将是您的模型类)并在那里进行计算。更好的是,将计算移到模型层,并提出一种按需获取它的方法。

如果您要修改其他人编写的现有代码,请首先检查UITableViewDataSource中的tableView:cellForRowAtIndexPath:方法以查看其获取数据的位置。据推测,这个地方有所有可用的数据,不管它是否显示在屏幕上。

相关问题