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 类型的值是不是在视图中为空,如果为空则显示空白

仅当 Mono 为空时如何执行操作,如果不为空则抛出错误

附加python字典,如果值为空则不替换

定义接受 PSCredential 对象的 Powershell 函数,但如果它为空则不会提示?

SQL 选择不同的行,如果为空则忽略行

如果存在则显示图像字符串,如果字段为空则显示默认图像