我需要能够在UITableView中调整单个单元格的高度,以使其适合其详细标签中的文本量.
我玩了以下但是它对我不起作用:
如何在没有自定义单元格的情况下在UITableViewCell中包装文本
希望你能帮忙,谢谢.
编辑:
试图代码:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = 0;
cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];
}
Run Code Online (Sandbox Code Playgroud)
和
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellText = @"Go get some text for your cell.";
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
return labelSize.height + 20;
}
Run Code Online (Sandbox Code Playgroud)
这没有用,它显示了单元格上的整个字符串,但单元格高度根本不受影响.
我的故事板中有一个棘手的设置,我有一个UIViewController,它包含一个UITableViewController.在UITableViewController中,我有几个原型单元,我已经链接到代码中的子类uitableviewcell对象.
使用约束和故事板我想根据UILabel最终的大小来改变原型单元格的高度,这取决于进入它的文本.
目前我有一个
UIViewController
-- UITableViewController
-- -- UITableViewCell ((melchat) prototype cell)
-- -- -- ContentView
-- -- -- -- UIView ((background) view with drop shadow card type effect)
-- -- -- -- -- UIImageView (Avatar)
-- -- -- -- -- IUlabel (dynamic (depending on code/input) multi line UILabel)
Run Code Online (Sandbox Code Playgroud)
有些我希望UILabel调整UIView(背景)的大小然后反过来影响UITableViewCell的高度.
我正在使用XCode 8.2.1
我在故事板中采用了布局的屏幕截图并应用了约束.
我已经更新了我的约束,几乎所有回到ContentView并将uilabel行数更新为0,然后还实现了UITableViewAutomaticDimension代码,但它仍然无效.请参阅下面的代码和屏幕截图.
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewAutomaticDimension;
}
Run Code Online (Sandbox Code Playgroud)