根据 UILabel 的高度设置 UITableViewCell 的高度
Posted
技术标签:
【中文标题】根据 UILabel 的高度设置 UITableViewCell 的高度【英文标题】:Set UITableViewCell's height depending on the height of a UILabel 【发布时间】:2011-08-06 15:14:29 【问题描述】:如果您能告诉我如何,我将不胜感激。
我当前设置 UILabel 高度的代码是:
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = 0;
cell.textLabel.text = [self getItemForKey:kSummary];
cell.textLabel.font = [UIFont systemFontOfSize:15];
cell.textLabel.textColor = [UIColor colorWithRed:54.0f/255.0f green:54.0f/255.0f blue:54.0f/255.0f alpha:1.0f];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
CGSize labelSize = [[cell.textLabel text] sizeWithFont:[cell.textLabel font] constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
cell.textLabel.frame = CGRectMake( 0, 0, 280, labelSize.height);
【问题讨论】:
***.com/questions/2136051/…的重复问题 【参考方案1】:你需要实现 UITableViewDelegate 方法- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
NSString *text = [self getItemForKey:kSummary];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
//You will need to define kDefaultCellFont
CGSize labelSize = [text sizeWithFont:kDefaultCellFont
constrainedToSize:constraintSize
lineBreakMode:UILineBreakModeWordWrap];
return labelSize.height + ANY_OTHER_HEIGHT;
【讨论】:
如果我这样做,填充会随着字数的增加而增加,我不知道为什么:/以上是关于根据 UILabel 的高度设置 UITableViewCell 的高度的主要内容,如果未能解决你的问题,请参考以下文章
根据 iOS SWIFT 高度更高的 UIImageView 或 UILabel 设置 UITableViewCell 高度
iOS--UILabel设置行距和字间距,并根据文本计算高度
如何将 UIImage 设置为 UITableView Cell,它根据我在 UILabel 中输入的文本动态计算单元格高度?