如何从UITableView中删除空单元格?

时间:2017-02-01 06:26:13

标签: ios objective-c xcode uitableview

我有一个UITableView,其中的单元格包含来自服务器响应的数据,这意味着并非每次所有单元格都显示数据。所以我需要删除那些"空"我已经搜索过,找不到任何可能的解决方案。来自How to remove empty cells in UITableView?的解决方案没有成功。实际上它使我的桌面视图消失了。

除了添加页脚视图之外,我还需要其他解决方案。有没有?

7 个答案:

答案 0 :(得分:8)

您应该检查来自服务器的数据,并且只将非零数据添加到tableview数据源。

之后重新加载你的桌面视图。

这样你的tableview就没有任何空单元格。简单。

如果您的问题是显示的单元格数量没有填满您的视图

你可以尝试

tableview.tableFooterView = UIView()

答案 1 :(得分:4)

您可以使用这两种方法中的一种。

1. self.tableView.tableFooterView.frame = CGRectZero;
2. self.tableView.tableFooterView = [[UIView alloc]initWithFrame:CGRectZero];

答案 2 :(得分:1)

试试这个

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
   return [[UIView alloc]init];
}

答案 3 :(得分:1)

如果你在谈论分离器;您可以通过更改UITableView的属性“分隔符”来删除它。

enter image description here

但这也会影响数据单元格。您必须在数据单元格中添加自定义分隔线。

答案 4 :(得分:0)

我希望您通过cellarray中添加数据。因此,只有在从服务器接收数据时才在数组中添加数据。如果您没有从服务器接收数据,请不要添加任何内容。并返回numberOfRowsarray的计数。

答案 5 :(得分:0)

删除tableview底部的空单元格

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 0.01
}

或使用此

self.tableView.tableFooterView = UIView()

答案 6 :(得分:0)

你也可以从笔尖那里做到。

来自消息来源:

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

    return 0.01f;
    }

     - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
     {        
       return [UIView new];
    }