/ Published in: Objective C
How to work out the cell height of a piece of text in order to set the row height of a table dynamically.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
{ CGFloat result = 44.0f; CGFloat width = 0; CGFloat tableViewWidth; CGRect bounds = [UIScreen mainScreen].bounds; if (UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) tableViewWidth = bounds.size.width; else tableViewWidth = bounds.size.height; width = tableViewWidth - 110; // fudge factor text = [self textForRow:indexPath.row]; if (text) { // The notes can be of any height // This needs to work for both portrait and landscape orientations. // Calls to the table view to get the current cell and the rect for the // current row are recursive and call back this method. CGSize textSize = { width, 20000.0f }; // width and height of text area CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:12.0f] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap]; size.height += 29.0f; // top and bottom margin result = MAX(size.height, 44.0f); // at least one row } return result; }