0

我需要为 UITableView 中的所有单元格设置自定义单元格高度。在这种方法中:

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

我试试这个:

if ([[tableView cellForRowAtIndexPath:indexPath] reuseIdentifier] == @"imageCell")

因为我在情节提要中有 3 个不同的单元格设置了不同的标识符。但是我的应用程序在这里崩溃了EXC_BAD_ACCESS

知道为什么吗?

谢谢。

4

2 回答 2

2

你正在比较一个字符串,所以你应该使用isEqualToString:

if ([[[tableView cellForRowAtIndexPath:indexPath] reuseIdentifier] isEqualToString:@"imageCell"])
于 2012-06-10T20:54:32.127 回答
0

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

您应该计算行的高度,而不是获取 tableView 的单元格。

在我看来,在 TableView 委托的生命周期中,第一步(在分配每个 UITableViewCell 之前),TableView 委托为每一行调用 heightForRowAtIndexPath (但此时,未分配 UItableViewCell)。在第二步中,TableView 调用

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 创建 UitableView 单元格。

于 2012-06-11T11:05:00.773 回答