我的表格中有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;
}
}
我面临的问题是,对于不应该显示中心单元的情况,第一和第三部分之间仍然会出现间隙(如下所示)。移除中心单元后,如何摆脱多余的间隙?
使用中心单元格/部分:
没有中心单元格/部分(出现间隙):
答案 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;
}