从Grouped UITableView中删除部分后出现间隙

时间:2011-09-14 10:42:44

标签: objective-c ios uitableview

我的表格中有3个部分,每个部分最多包含1行。

但是,根据变量,中心行可能会也可能不会显示在tableview中。我的代码实现如下:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSString *currentUserId = [[UserStockInfo sharedUserStockInfo]getUserId];
    switch (section) {
        case 0: //Follow button
            return 1;
            break;

        case 1://Center cell
            if (self.user.exists) {
                return 1;
            }
            else {
                return 0;
            }
            break;

        case 2://question
            return 1;

        default:
            return 0;
            break;
        }

}

我面临的问题是,对于不应该显示中心单元的情况,第一和第三部分之间仍然会出现间隙(如下所示)。移除中心单元后,如何摆脱多余的间隙?

使用中心单元格/部分:

enter image description here

没有中心单元格/部分(出现间隙):

enter image description here

2 个答案:

答案 0 :(得分:1)

您应该设置UITableView的页脚和标题的适当高度。

在您的委托中实施以下方法:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

例如,对于第二部分,您可以返回0:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
     if (section == 1) return 0;
     else return 10;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
     if (section == 1) return 0;
     else return 10;
}

希望,这会对你有所帮助

答案 1 :(得分:1)

我认为你应该实现(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    if (self.user.exists) {
        return 3;
    }
    return 2;
}