我有一个表格视图,在UILabel内部,必须显示120个字符,在阅读更多按钮之后,当我们单击阅读更多按钮单元格时,想要根据UILabel文本的内容进行扩展。 请帮我做到这一点。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(isReadMoreButtonTouched && [indexPath row]== indexOfReadMoreButton)
{
NSLog(@"cccccccccccccccccccccc -------- %f",size.height);
return size.height+52;;
}
else{
return 120.0f;
}
}
这里的大小是UILabel的高度
- (CGFloat)getLabelHeight:(UILabel*)label
{
CGSize constraint = CGSizeMake(label.frame.size.width, CGFLOAT_MAX);
CGSize size;
NSStringDrawingContext *context = [[NSStringDrawingContext alloc] init];
CGSize boundingBox = [label.text boundingRectWithSize:constraint
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:label.font}
context:context].size;
size = CGSizeMake(ceil(boundingBox.width), ceil(boundingBox.height));
return size.height;
}
您必须首先将 label 的子字符串设置为 120,
然后将这 120 个子字符串字符分配给 label。当您点击更多按钮时,再次将完整的原始长度字符串分配给标签,如果您使用内置的单元格动态高度,它将自动增加单元格高度。同时,您还可以检查此可折叠标签。