如何获取tableView中的单元格对象:(UITableView *)tableView heightForRowAtIndexPath函数?

时间:2011-04-12 17:39:46

标签: iphone objective-c ios ipad

我知道返回heightForRowAtIndexPath时单元格的内容。在此函数中,如何获取单元格对象?

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

}

如果我试试这个

 [tableView cellForRowAtIndexPath:indexPath]

它失败并在无限循环中熄灭。

有什么想法吗?

5 个答案:

答案 0 :(得分:26)

调用self(委托)而不是tableView本身。

id cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];

答案 1 :(得分:2)

使用func dequeueReusableCellWithIdentifier(identifier: String) -> AnyObject? UITableView 不要使用func dequeueReusableCellWithIdentifier(identifier: String, forIndexPath indexPath: NSIndexPath) -> AnyObject
可能的原因heightForRowAtIndexPath之前调用cellForRowAtIndexPath,此方法使用索引路径根据单元格在表视图中的位置执行其他配置。但是既然如此,仍然没有细胞,因此我认为它会进入无限循环。

答案 2 :(得分:1)

调用heightForRowAtIndexPath:时尚未创建单元格,因此无法“获取”单元格。相反,查看您的模型并确定单元格的高度。

如果您担心长字符串并且需要更多垂直空间,请考虑使用sizeWithFont:forWidth:lineBreakMode:。文档:https://developer.apple.com/library/ios/#documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html

答案 3 :(得分:0)

我认为你不能或你应该。 您需要从indexPath确定要在相应单元格中显示哪些数据,从而计算出所需的单元格高度。

因此,您需要编写一些代码,以便从indexPath获取数据模型中的正确数据。

答案 4 :(得分:-4)

uitableviewcell *ce=[self.view viewwithtag:indexPath.row]; 

返回单元格对象。