Set TableView height by the number or rows

前端 未结 9 1604
不思量自难忘°
不思量自难忘° 2021-01-31 10:40

I have got TableView in the MainstoryBoard and the number of rows is random every time. I want the height of the whole TableView to be fl

9条回答
  •  臣服心动
    2021-01-31 11:30

    You can change the UITableView height as per the contentSize as below:

    Swift 2.2

    tableView.frame = CGRectMake(tableView.frame.origin.x, tableView.frame.origin.y, tableView.frame.size.width, tableView.contentSize.height)
    

    Swift 3 or 4+

    tableView.frame = CGRect(x: tableView.frame.origin.x, y: tableView.frame.origin.y, width: tableView.frame.size.width, height: tableView.contentSize.height)
    

    and make sure you write the above line in viewDidAppear method

    You need to write the above line in viewDidLayoutSubviews also.

    Swift 2.2

    func viewDidLayoutSubviews(){
         tableView.frame = CGRectMake(tableView.frame.origin.x, tableView.frame.origin.y, tableView.frame.size.width, tableView.contentSize.height)
         tableView.reloadData()
    }
    

    Swift 3 or 4+

    func viewDidLayoutSubviews(){
         tableView.frame = CGRect(x: tableView.frame.origin.x, y: tableView.frame.origin.y, width: tableView.frame.size.width, height: tableView.contentSize.height)
         tableView.reloadData()
    }
    

提交回复
热议问题