Swift3 : Hide UITableView if Empty

家住魔仙堡 提交于 2021-01-03 08:02:20

问题


I have a tableview, which I use as a part of the screen.

@IBOutlet var tableView: UITableView!

Sometimes I have data, and sometimes I don't. I want to display the table only when data is present and hide it when there is no data.

I tried adding a constraint of height with lesser or equal to options. But if I do that, tableview is hidden even when I have data

what should I do?

I googled around and didn't find a solution, so asking here.

Disclaimer: I am new to iOS/Swift development. Sorry if this is already answered


回答1:


You can show hide tableView like below.

You can check the count using the array with which you might be populating the data Or with the tableView property numberOfRowsInSection.

when there is no data

tableView.ishidden = true

when there is data

tableView.ishidden = false

Or you can use the delegate method as below.

 override func viewWillAppear(_ animated: Bool) {
        if array.isEmpty {
            self.tableView.isHidden = true
        }
        else {
            self.tableView.isHidden = false
        }
    }

More better way would be using didSet.

var dataArray: [String] = [] {
   didSet {
      if dataArray.count > 0 {
         //Update Table Data
      } else {
         //Hide Table and show so info of no data
      }
   }
}



回答2:


You can also try this, so that you can make use of the empty table space.

  • Set outlet to your table height constraint and add the below line

    tableHeightConstraint.constant = array.count != 0 ? 250 : 0
    




回答3:


Set tableView.isHiden = true if no data to present.



来源:https://stackoverflow.com/questions/42430856/swift3-hide-uitableview-if-empty

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!