我从网络服务中获取数据列表。我希望我的表只显示包含数据而不包含其余数据的行数(空行)。下面提到的方法,我曾经这样做,但它没有效果,它只为非空单元格着色。任何人都可以为此指导我。
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.backgroundColor = [UIColor grayColor];
}
提前致谢。
答案 0 :(得分:0)
试试这个:
- (UIView *)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger*)section
{
UIView *view=[[UIView alloc]init];
return view;
}
这不会改变帧,但会在空单元格之间隐藏线条。 我想你想要那个。
答案 1 :(得分:0)
尝试使用此
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return array.count;
}
其中array将是您从Web服务获取的列表数据数组
答案 2 :(得分:0)
最后我得到了解决方案,
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
//return 172;
if([arrayServ count] == 1)
{
tableService.frame = CGRectMake(5, 20, 310, 40);
}
if([arrayServ count] == 2)
{
tableService.frame = CGRectMake(5, 20, 310, 85);
}
if([arrayServ count] == 3)
{
// return 172;
tableService.frame = CGRectMake(5, 20, 310, 130);
}
if([arrayServ count] == 4)
{
tableService.frame = CGRectMake(5, 20, 310, 175);
}
if([arrayServ count] == 5)
{
tableService.frame = CGRectMake(5, 20, 310, 220);
}
if([arrayServ count] == 6)
{
tableService.frame = CGRectMake(5, 20, 310, 265);
}
if([arrayServ count] == 7)
{
tableService.frame = CGRectMake(5, 20, 310, 310);
}
if([arrayServ count] > 7)
{
tableService.scrollEnabled = TRUE;
}
return 0;
}
答案 3 :(得分:0)
怎么样
if(arrayServ.count > 6)
{
tableService.frame = CGRectMake(5, 20, 310, 6 * 45);
}
else
{
tableService.frame = CGRectMake(5, 20, 310, arrayServ.count * 45);
}
而不是分开处理每个案件?
另外,如果你读了一个问题,他可能会认为你可能想要隐藏空单元格,而不是你想要调整uitableview的框架大小。