UITableview单元格高度不在空表中?

时间:2011-08-27 13:05:49

标签: iphone objective-c ios ipad ios4

我正在使用下面的代码在普通(未分组)的UITableView上创建更大更整洁的外观。它工作正常,除非我有一个空表,然后单元格的高度设置为正常高度。我有标准的Separatorstyle(灰色线条),所以如果它是空的,它看起来很糟糕。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    return 75;
}

知道如何解决这个问题吗?

修改

找到一个更好的解决方案,如果表格为“空”,我甚至不显示行,而是显示指南文字。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if ([dataArray count] == 0) {
        [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
        [pleaseAddStuffText setHidden:NO];
    } else {
        [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
        [pleaseAddStuffText setHidden:YES];
    }
    return [dataArray count];
}

3 个答案:

答案 0 :(得分:38)

您应该能够通过设置rowHeight来强制行高,即使行数为0。

self.tableView.rowHeight = 75.0;

您也可以在IB中进行设置。

如果在cellForRowAtIndexPath中设置了一个单元格,则只会调用heightForRowAtIndexPath,而这是tableview的一个属性,并且始终存在。

答案 1 :(得分:0)

我在单元格内部使用了自动版式,因此我需要自动行高。但是我还希望当表为空时,单元格的大小大于标准的44点高度。我最终要做的是将情节提要文件中的行高和估计值设置为124,并实现tableView:heightForRowAtIndexPath:方法以返回UITableViewAutomaticDimension

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewAutomaticDimension;
}

Row Height and Estimate to 124 in storyboard

答案 2 :(得分:-1)

你的空表是什么意思?如果完整表为空,则返回的表的节数为空。这意味着桌面上根本不会显示任何内容。

如果你有一个空表行=表格单元格,那么你应该确保cell at indexpath返回你只需要放空值的东西。然后,表格中的其他行之间会有一条空行。

究竟是什么/应该是空的?