0

我有两种类型的单元格,我将使用我的 UITableView,所以我创建了两个具有不同标识符的原型单元格。我手动更改了大小,但是当我编译和运行时,两个单元格的大小相同。

有没有办法通过情节提要做到这一点而无需每次都检查

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

我至少会有大约 100 个细胞。

更新:就我而言,我有一个包含 3 个部分的 tableview,第一个小,第二个和第三个更大。

4

2 回答 2

5

我认为您最好的选择是使用您列出的 -tableView:heightForRowAtIndexPath: 委托方法并返回您想要的高度。

您可以为每个原型分配标签并使用 if/else if 条件。

或者,如果您对每个原型都有一个子类 UITableViewCell,您可以执行类似的操作

...
id cell = [tableView cellForRowAtIndexPath:indexPath];
if ([cell isKindOfClass:[CustomCell1 class]]) {
    // return aNumber;
} else if ([cell isKindOfClass:[CustomCell2 class]]) {
    // return aNumber;
} else {
    return aNumber;
}
...
于 2013-10-01T17:55:08.597 回答
0

如果您知道决定单元格高度的部分,那么您可以像这样实现它:

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath: (NSIndexPath*)indexPath {
    CGFloat result;
    if (indexPath.section == 0) {
        result = 160;
    } else {
        result = 80;
    }
    return result;
}

当然,这取决于您需要的高度。

于 2013-10-01T17:48:22.190 回答