I am new to iphone development.I am parsing a xml file and displaying the title, date, view and summary in each row of a table.The contents of summar is big ,so only first 3 words are displayed in the cell.How can i increase the height of the row with respect to the length of the contents.All the content should fit properly inside the cell and full content should be displayed.Please help me out.Thanks.
Asked
Active
Viewed 1.0k times
5 Answers
13
You can do this in your tableView.delegate/datasource:
- (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.row){
case 0:
if(indexPath.section==0)
return 123.0; // first row is 123pt high
default:
return 40.0; // all other rows are 40pt high
}
}
This does however slow down scroll performance. Ideally you should set the row height for all rows to be identical using tableview.rowHeight
.

Felix Lamouroux
- 7,414
- 29
- 46
-
I want to increase the height of a single row which displays summary – Warrior Feb 12 '10 at 15:23
-
The return a different number depending on the NSIndexPath. – Felix Lamouroux Feb 12 '10 at 15:26
-
can you elaborate your answer please.since i am new to iphone i am not able to understand it. – Warrior Feb 12 '10 at 15:29
-
Thanks its working, what should i do, if i use grouped tables and consisting 2 tables.I want to increase the height of the first cell of first table only.. – Warrior Feb 12 '10 at 15:58
-
1I added a check for the first section. – Felix Lamouroux Feb 12 '10 at 16:12
2
(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *text = @"write your dynamic text here";
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:14.0];
CGSize constraintSize = CGSizeMake(320.0f, 999); // Make changes in width as per your label requirement.
CGSize textSize = [text sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
return textSize.height;
}

Pang
- 9,564
- 146
- 81
- 122

Vijay Yadav
- 511
- 5
- 14
1
if you have multiple tableview in one view controller, you can do for each different table view as a below method.
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (tableView == self.tableViewCampaigns) {
return 45;
}else if(tableView == self.tableViewAgenda)
return 32;
else
return 29;
}

Emre Gürses
- 1,992
- 1
- 23
- 28
0
One way to do it is to manually set the size of the cell. Just replace ROW_HEIGHT with something suitable.
cell.frame = CGRectMake(0.0, 0.0, 320.0, ROW_HEIGHT);

willcodejavaforfood
- 43,223
- 17
- 81
- 111
0
Try using this Delegates which automatically manages according to the content of the cell.
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return 100
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}

DanielBarbarian
- 5,093
- 12
- 35
- 44

Anuraj
- 1,242
- 10
- 25