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
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
}
All you really have to do is:
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