我想为细胞制作一个动态高度UITableview
。在每个单元格中,我显示的是不同文本的消息。现在我希望我的表格单元格符合消息的文本,并且单元格上的标签也应该显示文本。
我根据可以容纳在一行中的字符数使我的表格单元格变得灵活。但这是问题所在。不同的字母表占用不同的空间。所以,我无法计算出一行中有多少字母可以出现。对此有何建议???
答案 0 :(得分:2)
试试这个:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{CGSize size;
if (SYSTEM_VERSION_LESS_THAN(@"7.0")) {
// code here for iOS 5.0,6.0 and so on
CGSize fontSize = [text sizeWithFont:[UIFont fontWithName:@"Helvetica" size:17]];
size = fontSize;
}
else {
// code here for iOS 7.0
NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"Helvetica Neue" size:19], NSFontAttributeName,
nil];
CGRect fontSizeFor7 = [text boundingRectWithSize:CGSizeMake(571, 500)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:attributesDictionary
context:nil];
size = fontSizeFor7.size;
}return size.height +30 ;
}
答案 1 :(得分:1)
您不想计算您的文字有多少个字符,只需使用以下方法计算高度:
h = [NSString stringWithFormat:@"%f",
[post.text boundingRectWithSize:CGSizeMake(298.0f, CGFLOAT_MAX)
options:(NSStringDrawingUsesLineFragmentOrigin)
attributes:[NSDictionary dictionaryWithObject:[UIFont fontWithName:@"Helvetica Neue" size:14.0]
forKey: NSFontAttributeName]
context:nil].size.height]
使用宽度为298和字体/字体大小。
答案 2 :(得分:0)
检查我的答案
Calculate UITableViewCell height to fit string
在这里,您必须根据文本计算标签的高度,然后设置为单元格的高度。
您可以使用此动态计算高度和宽度。
我希望它能帮到你
答案 3 :(得分:0)
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString * yourCellStr = @"The string you want to apply to your cell at this index path";
CGSize maxLblSize = CGSizeMake(320, 200);
CGSize expectedLblSize = [yourCellStr sizeWithFont:[UIFont systemFontOfSize:15] constrainedToSize:maxLblSize lineBreakeMode:NSLineBreakByWordWrapping];
return expectedLblSize.height;
}
答案 4 :(得分:-1)
请我的回答
UILabel *lbl = [[UILabel alloc] init];
lbl.text = @"abcd";
NSLog(@"count %lu",(unsigned long)[lbl.text length]);