tableview cell how do we resize cell in swift along with image and label

后端 未结 3 539
执笔经年
执笔经年 2020-12-02 03:00

when we have a lable and image in tableview cell how do we resize cell in swift or lable as per the text in the Last cell(in picture) there are some more lines of text bu

相关标签:
3条回答
  • 2020-12-02 03:27
    1. set top,bottom,leading,trailing constraints for your label
    2. set Attribute Inspector->lines to 0
    3. set tableview.rowHeight = UITableViewAutomaticDimension in viewDidLoad() method
    0 讨论(0)
  • 2020-12-02 03:38

    Give constrain to your lable hight greater equal and put line to 0.

    var pickheight: CGFloat = 0.0
    

    Write this line in

    override func viewDidLoad() {
            super.viewDidLoad()
            tableTrip.rowHeight = UITableViewAutomaticDimension
    }
    

    Method for increase tableview cell .

    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    
         pickheight = self.findHeightForText("Pass your text here like array value as String ", havingWidth: self.view.frame.size.width - 116, andFont: UIFont.systemFontOfSize(14.0)).height
    
         return "YOUR_DEFALUT_CELL_SIZE" + pickheight
    }
    

    Method for find text hight for cell..

    func findHeightForText(text: String, havingWidth widthValue: CGFloat, andFont font: UIFont) -> CGSize {
            var size = CGSizeZero
            if text.isEmpty == false {
                let frame = text.boundingRectWithSize(CGSizeMake(widthValue, CGFloat.max), options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName: font], context: nil)
                size = CGSizeMake(frame.size.width, ceil(frame.size.height))
            }
            return size
    }
    
    0 讨论(0)
  • 2020-12-02 03:50

    All you really have to do is:

    1. Use Auto Layout when creating your table view cells.
    2. Set the table view rowHeight to UITableViewAutomaticDimension.
    3. Set the estimatedRowHeight or implement the height estimation delegate method.

      tableView.rowHeight = UITableViewAutomaticDimension

      tableView.estimatedRowHeight = 200 // Set maximum height needed for the table row

    The trick to getting Auto Layout to work on a UITableViewCell is to ensure you have constraints to pin each subview on all sides — that is, each subview should have leading, top, trailing and bottom constraints. Then, the intrinsic height of the subviews will be used to dictate the height of each cell.

    Please, Read this article for details and working sample: https://www.raywenderlich.com/129059/self-sizing-table-view-cells

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