我正在开发和应用就像新闻喂养一样。一些单元格视图我必须将NSAttributedString
设置为textview并获得textview的确切高度。
在我的NSAttributedString
中有HTML内容。我必须在textview中设置,因为它在Web视图中占用了太多时间。
问题在于,有些时候我得到了textview的完美高度,有些时候我没有达到textview的高度。由于NSAttributedString
有一段时间它会考虑字体高度,有些时候它不会考虑字体高度。
如果你看到我的代码,我可以更多地了解我所做的事情。 templbl2
是UITextview
temptext2
是UIView
。
这是我的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *str3 = [NSString stringWithFormat:@"<span style=\"font-family: Frank-regular; font-size: 13\">%@</span>", strTerms];
NSAttributedString * attrStr2 = [[NSAttributedString alloc] initWithData:[str3 dataUsingEncoding:NSUTF8StringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSFontAttributeName : [UIFont fontWithName:@"Frank-regular" size:13.0]} documentAttributes:nil error:nil];
templbl2.attributedText = attrStr2;
[templbl2 sizeToFit];
[self textViewHeightForAttributedText:attrStr2];
}
- (CGFloat)textViewHeightForAttributedText:(NSAttributedString *)text
{
CGFloat width = [UIScreen mainScreen].bounds.size.width; // whatever your desired width is
CGRect paragraphRect =
[text boundingRectWithSize:CGSizeMake(300.f, CGFLOAT_MAX)
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
context:nil];
temptext2.frame = CGRectMake(0, 0, width, paragraphRect.size.height+60);
return paragraphRect.size.height;
}
答案 0 :(得分:0)
尝试以下方法:
- (CGFloat)textViewHeightForAttributedText:(NSAttributedString *)text
{
CGFloat width = [UIScreen mainScreen].bounds.size.width; // whatever your desired width is
UITextView *txtView;
txtView.attributedText = attrStr2;
CGSize size = [tvDummyForHeightTemp sizeThatFits:CGSizeMake(width, FLT_MAX)];
temptext2.frame = CGRectMake(0, 0, width, size.height+60);
return size.height;
}
希望这会有所帮助:)