无法计算属性字符串的高度

时间:2014-06-10 15:09:46

标签: ios objective-c uitableview uilabel nsattributedstring

我尝试使用NSAttributedString及其中的html解决问题。我尝试在UILabel中将其作为UITableViewCell中的属性文本进行绘制。

我有一个html字符串:

<span class=\"\">Безвозмездно</span>

所以我用方法创建了一个属性字符串:

+ (NSAttributedString *)attributedStringWithHTML:(NSString *)HTML {
    NSDictionary *options = @{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType };
    return [[NSAttributedString alloc] initWithData:[HTML dataUsingEncoding:NSUnicodeStringEncoding] options:options documentAttributes:NULL error:NULL];
}

然后我尝试计算类方法中的字符串高度以获得单元格高度。我用:

if (attrString.length > 0) {
    height += truncf([attrString boundingRectWithSize:CGSizeMake(300, CGFLOAT_MAX)
                                              options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
                                              context:nil].size.height) + 1.0f;
}

所以我得到的标签高度小于我得到的标签:

[self.titleLabel sizeToFit];

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我也遇到过这个问题。目前我发现它出现在UILabel和UITextView中。在我看来,它是Apple的一个错误。因此,为了保证结果的准确性,我更喜欢用[self.titleLabel sizeToFit]

获得高度