UITableView 在目标 c 中的 UILabel 中的 120 个字符之后带有读取更多按钮



我有一个表格视图,在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。当您点击更多按钮时,再次将完整的原始长度字符串分配给标签,如果您使用内置的单元格动态高度,它将自动增加单元格高度。同时,您还可以检查此可折叠标签。

最新更新