Swift 如何将tableView移回GroundView标签

Swift how to move tableView backGroundView label

我有一个 tableView 有:

1-) 第 1 节 header

    TableView Cell

2-) 第 2 节 header

    Tableview Cell

3-) 第 3 节

    (n rows that contains list of records)

我的 tableView 有 3 个部分。在第 3 节中,我列出了记录。当没有记录时,我会显示一个标签,上面写着 "No Records Found" 我的 table 视图,如下图所示。

My Table View Picture

但我的问题是,我想将标签移动到 table 视图的底部(在“+”视图上)我如何移动这个标签。这是我的swift代码

func setNoDataInfoIfAbsenceNotExists()
{
    let noDataLabel : UILabel = UILabel()
    noDataLabel.frame = CGRectMake(0, 0 , (self.tableView.bounds.width), (self.tableView.bounds.height))
    noDataLabel.text = "No Records Found"
    noDataLabel.textColor = UIColor.blackColor()
    noDataLabel.textAlignment = .Center
    self.tableView.backgroundView = noDataLabel
    self.tableView.separatorStyle = .None
}

您正在将框架 noDataLabel 设置为 table 视图的大小,并且文本位于该框架的中心。

您应该尝试缩小框架(尝试 CGRectMake(0, 0, 0, 0) 并在设置文本调用 noDataLabel.sizeToFit() 之后),然后使用 noDataLabel.center.xnoDataLabel.center.y 定位它.

尝试:

noDataLabel.text = "No Records Found"
noDataLabel.sizeToFit()
noDataLabel.center.x = tableView.center.x
noDataLabel.center.y = tableView.frame.height - noDataLabel.frame.height

添加这一行

tableView.tableFooterView  = tableViewFooter

你得到了这样的结果。查看文本视图底部的蓝色视图 .

你的视图只是坚持你的 tableview 高度,你的视图总是在 tableview 的末尾。

创建新单元格,其中将包含带有文本 "No Results" 的标签(或您需要的任何内容)。 在您的代码中:

内部 numberOfRowsInSection

//other part of your implementation
if indexPath.section == 3 {
    return dataArray.isEmpty ? 1 : dataArray.count
}

内部cellForRowAtIndexPath方法:

// other part of your implementation
if indexPath.section == 3 {
    guard !dataArray.isEmpty else {
        return NoDataCell() // replace with your implementation
    }         return YourDataCell()
}