Devarshi
Devarshi

Reputation: 16758

How to set row height based on its content in table?

Generally, table has a fixed row height but according to my requirements I need to set height of each row according to content within it.

Can anyone suggest me some solution for it?

Thanks,

Miraaj

Upvotes: 6

Views: 3621

Answers (2)

Devarshi
Devarshi

Reputation: 16758

Thanks all for your suggestions and help. This problem is now resolved using following code in tableView:heightOfRow:

float colWidth = [[[tableView tableColumns] objectAtIndex:1]width];

NSString *content = [[[tempArray objectAtIndex:row] objectForKey:@"tValue"] string];

float textWidth = [content sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[NSFont fontWithName:@"Lucida Grande" size:15],NSFontAttributeName ,nil]].width;

float newHeight = ceil(textWidth/colWidth);

newHeight = (newHeight * 17) + 13;
if(newHeight < 47){
    return 47;
}   
return newHeight;

Upvotes: 1

dj2
dj2

Reputation: 9618

The table view delegate protocol has a tableView:heightOfRow that lets you set the height of each row in the table view.

Upvotes: 6

Related Questions