我正在调用一个函数,我在其中检索需要在tableviewCells中显示的数据的NSDictionary
。是否可以调用方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
另一种方法?
答案 0 :(得分:1)
无法在另一个方法中调用该特定方法。但是,您可以在任何方法中调用[self.tableView reloadData]
。这将调用包含- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
答案 1 :(得分:0)
您可以显式调用UITableViewDataSource
和UITableViewDelegate
的任何方法,但只应在需要时才能执行。在我的一个项目中,我得到了特定的(子类)单元格,它们在drawRect:
方法中绘制元素而不是,但在我定义的drawCell
方法中,以获得性能提升(防止屏幕外渲染等。)
除非你的单元格有特殊的绘图需求,(调整子视图等),你应该让cellForRowAtIndexPath:
方法为你工作。
但是,如果你想明确获取细胞,你可以这样做:
[yourTableView cellForRowAtIndexPath:indexPath];
这会让你的细胞回归。请注意,它将执行cellForRowAtIndexPath:
内的所有相关代码,包括出列,创建以及您在其中进行的任何其他调用。
indexPath
是NSIndexPath
类型的对象,您可以创建一个这样的对象:
NSIndexPath* indexPath = [NSIndexPath indexPathForRow:ROW_NUM inSection:SECTION_NUM];
其中,ROW_NUM
是该部分内的行号,即SECTION_NUM
。对于第三部分中的第一个单元格,indexPath
为:
NSIndexPath* indexPath = [NSIndexPath indexPathForRow:0 inSection:2];//Since indices start at 0