我是iphone开发的新手。我正在解析一个xml文件,并在表格的每一行显示标题,日期,视图和摘要.summar的内容很大,所以在单元格中只显示前3个单词。如何根据内容的长度增加行的高度。所有内容都应该适合单元格内部,并且应显示完整的内容。请帮帮我。谢谢。
答案 0 :(得分:13)
您可以在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
}
}
但这会降低滚动性能。理想情况下,您应使用tableview.rowHeight
将所有行的行高设置为相同。
答案 1 :(得分: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;
}
答案 2 :(得分:1)
如果在一个视图控制器中有多个tableview,则可以为每个不同的表视图执行以下方法。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (tableView == self.tableViewCampaigns) {
return 45;
}else if(tableView == self.tableViewAgenda)
return 32;
else
return 29;
}
答案 3 :(得分:0)
一种方法是手动设置单元格的大小。只需用合适的东西替换ROW_HEIGHT即可。
cell.frame = CGRectMake(0.0, 0.0, 320.0, ROW_HEIGHT);
答案 4 :(得分:0)
尝试使用此代理,根据单元格的内容自动管理。
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return 100
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}