两个UITableViewCell在故事板中具有不同的标识符和不同的高度

时间:2013-10-01 17:36:37

标签: iphone ios objective-c uitableview

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

有什么方法可以通过故事板进行,而不是每次都检查

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

我至少会有100个细胞。

更新:在我的情况下,我有一个包含3个部分的tableview,第一个是小的,第二个和第三个更大。

2 个答案:

答案 0 :(得分:4)

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

您可以为每个原型分配标签,并使用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;
}
...

答案 1 :(得分:0)

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

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

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