Swift, Auto Resize Custom Table View Cells

前端 未结 4 941
走了就别回头了
走了就别回头了 2020-12-17 06:14

In my app, I have a table view with an image, label and text view in each cell. I would like to be able to auto-resize the cells depending on the amount of content in the te

相关标签:
4条回答
  • 2020-12-17 06:49

    Make sure that the content mode is set to Scale To Fill of your UITextView Make sure that there are no height constraints for the UITextView and the card UIView

    Try to add the estimated height into viewDidLoad:

    override func viewDidLoad() {
        tableView.estimatedRowHeight = 100
        tableView.rowHeight = UITableViewAutomaticDimension
    }
    

    Maybe the AutoHeight is not working because of the UIView above the UITextView. Try to call the sizeToFit and layoutIfNeeded methods for the UIView in the cellForRowAt:

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Identifier", for: indexPath) as! CustomTableViewCell
        cell.vwCard.sizeToFit()
        cell.vwCard.layoutIfNeeded()
        return cell
    }
    

    You can also try the sizeToFit and layoutIfNeeded as well for the UITextView.

    Hope this works........

    0 讨论(0)
  • 2020-12-17 07:02

    Check if your constraints are like this(based on your image) :

    imageView : set to Top and Leading of your container, with fix height and width values.

    label : you can set it to top and horizontal space of your image, with fix height and width as well.

    textView : leading to image, top space to label, trailing and bottom to container.

    And keep using

    tableView.estimatedRowHeight = 100
            tableView.rowHeight = UITableViewAutomaticDimension
    

    in your viewWillAppear()

    0 讨论(0)
  • 2020-12-17 07:05

    Update for swift 4.2

    Use:

    UITableView.automaticDimension
    

    Instead of:

    UITableViewAutomaticDimension
    
    0 讨论(0)
  • 2020-12-17 07:09

    Set bottom of your textView with bottom of that white UIView and make sure that white UIView has left,right,top and bottom constraints :)

    Same type of example is explained here programmatically....

    0 讨论(0)
提交回复
热议问题