【问题标题】:How to hide empty UITablecells?如何隐藏空的表格单元格?
【发布时间】:2012-05-20 18:59:29
【问题描述】:

如何隐藏空的 UITableCells?我的 Tablecell 包含背景,所以我尝试了这行代码

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
    view.backgroundColor = [UIColor whiteColor];
    return view;
}

但它不起作用(因为我的 uitablecell 背景)

背景:

[tabelView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"table.png"]]];

【问题讨论】:

  • 我不明白为什么表格单元格会存在,如果它们是空的。当您的数据源被询问单元格的数量时,为什么不只返回您需要的“非空”单元格的数量?
  • “隐藏”是什么意思?您想要表格中的间隙(即中间)还是只有表格中的最后一个单元格(即最底部的单元格)是空的?
  • 我的意思是 uitablecells 的单独行我如何隐藏它们
  • 您想隐藏 tableview 单元格,但您已经发布了 viewforfooterinsection 的代码。您能否在 cellforrowinindexpath 中发布您的代码?还有你说的空是什么意思?

标签: objective-c xcode ios5


【解决方案1】:

Swift 2.0 版本

如果您希望 tableViewController 仅显示已定义的单元格,则必须使用具有清晰颜色背景的空 UIView 实现委托方法 tableView(tableView:, viewForFooterInSection section:) -> UIView?。

在这种情况下,如果您将方法 tableView(tableView: UITableView, numberOfRowsInSection section: Int) 定义为返回 3 个单元格,则只有 3 个可见单元格没有分隔符或其他单元格上的任何背景。

这里有我的viewForFooterInSection 实现示例:

override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {

        let view = UIView()
        view.backgroundColor = UIColor.clearColor()

        return view
    }

【讨论】:

    【解决方案2】:

    如果要删除虚拟分隔符,则必须将表格视图分隔符样式设置为无,如下所示:

    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    

    请注意,这也会隐藏非空单元格之间的分隔符。如果你想显示它们之间的界限,你必须自己照顾它,例如通过使用自定义UITableViewCell,顶部/底部有 1px 线。

    【讨论】:

      【解决方案3】:

      是否要隐藏页脚或部分中的单元格?

      如果您有多个部分,您可以检查委托实际位于哪个部分。

      If (section == 0) {
      Return view;
      }
      

      【讨论】:

        猜你喜欢
        • 2012-08-14
        • 2017-12-11
        • 2011-02-07
        • 2015-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多