Swift3:如果为空则隐藏 UITableView
Posted
技术标签:
【中文标题】Swift3:如果为空则隐藏 UITableView【英文标题】:Swift3 : Hide UITableView if Empty 【发布时间】:2017-02-24 04:36:16 【问题描述】:我有一个表格视图,我将其用作屏幕的一部分。
@IBOutlet var tableView: UITableView!
有时我有数据,有时我没有。 我只想在数据存在时显示表格,在没有数据时隐藏它。
我尝试使用小于或等于选项添加高度约束。但是如果我这样做,即使我有数据,tableview 也会被隐藏
我该怎么办?
我搜索了一下,没有找到解决方案,所以在这里问。
免责声明:我是 ios/Swift 开发的新手。对不起,如果这已经回答了
【问题讨论】:
【参考方案1】:您可以显示隐藏tableView
,如下所示。
您可以使用可能用于填充数据的数组或tableView
属性numberOfRowsInSection
来检查计数。
当没有数据时
tableView.ishidden = true
当有数据时
tableView.ishidden = false
或者你可以使用下面的委托方法。
override func viewWillAppear(_ animated: Bool)
if array.isEmpty
self.tableView.isHidden = true
else
self.tableView.isHidden = false
更好的方法是使用 didSet。
var dataArray: [String] = []
didSet
if dataArray.count > 0
//Update Table Data
else
//Hide Table and show so info of no data
【讨论】:
我没有投反对票,但您建议将表格隐藏在numberOfRowsInSection
委托方法中是一个糟糕的建议。在调用任何委托方法之前,视图应该被隐藏很久。
@rmaddy 更新答案
即使是 OP 也可以在重新加载 tableView 之前检查数组值。如果array.count ==0
则隐藏tableView 否则显示tableView。
is: "tableView.isHidden = true" 不是 "tableView.ishidden = true"。 “h”“H”。只为第一篇文章。稍后 in override func viewWillAppear 就可以了。【参考方案2】:
你也可以试试这个,这样你就可以利用空表空间了。
为您的表格高度约束设置出口并添加以下行
tableHeightConstraint.constant = array.count != 0 ? 250 : 0
【讨论】:
虽然这样可行,但我更倾向于将 isHidden 设置为 true 嗯,没关系。 :) 这对我很有用,因为 isHidden 变量被其他东西严格控制。事实上,有了这个,我们可以根据表格中元素的数量来控制表格的大小。对我的自动完成应用程序非常有用,等等。我们可以逐行隐藏,逐行显示,使表格高度自适应。谢谢。【参考方案3】:如果没有要显示的数据,则设置tableView.isHiden = true
。
【讨论】:
以上是关于Swift3:如果为空则隐藏 UITableView的主要内容,如果未能解决你的问题,请参考以下文章
检查 DateTime 类型的值是不是在视图中为空,如果为空则显示空白