UITableViewAutomaticDimension和heightForRow

时间:2017-08-23 05:40:25

标签: ios swift uitableview size

我需要对某些单元格使用UITableViewAutomaticDimension,并且还需要对其他一些单元格使用heightForRow

是否可以在同一个表视图中使用它们? 如果可能,我该怎么做?

3 个答案:

答案 0 :(得分:2)

您好,您可以按照以下方式进行操作

viewDidLoad方法

self.tblView.rowHeight = UITableViewAutomaticDimension
self.tblView.estimatedRowHeight = 180

heightForRowAt indexPath方法

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    //Condition for specific height
    if indexPath.row != 1 {
        return UITableViewAutomaticDimension
    }
    else {
        return 150
    }
}

答案 1 :(得分:2)

试试这个:

   override func viewDidLoad() {
        super.viewDidLoad()         
        //Add this code
        //Requests that UITableView use the default value for a given dimension.
        tableView.estimatedRowHeight = 44.0 // estimate Row Height
        tableView.rowHeight = UITableViewAutomaticDimension

      }
     func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        if indexPath.section == 0{
            if indexPath.row == 0{
                return 44 // add your fix row height
            }else{
                return UITableViewAutomaticDimension
            }
        }
        return 0

    }

答案 2 :(得分:0)

对于Swift 4.0

viewWillAppear方法中

 tableView.estimatedRowHeight = 100
 tableView.rowHeight = UITableView.automaticDimension

heightForRowAt indexPath方法中

 if (tableView == tableView) {
            return UITableView.automaticDimension
 } else {

   return 150

 }