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.x
和 noDataLabel.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()
}
我有一个 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.x
和 noDataLabel.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()
}