您的位置:首页 > 产品设计 > UI/UE

动态获取UITextView 高度

2016-01-27 14:56 543 查看
- (CGSize)getStringRectInTextView:(NSString *)string InTextView:(UITextView *)textView;
{
//实际textView显示时我们设定的宽
UITextView* localTextView=textView;
CGFloat contentWidth = CGRectGetWidth(localTextView.frame);
//但事实上内容需要除去显示的边框值
CGFloat broadWith = (localTextView.contentInset.left + localTextView.contentInset.right
+ localTextView.textContainerInset.left
+ localTextView.textContainerInset.right
+ localTextView.textContainer.lineFragmentPadding/*左边距*/
+ localTextView.textContainer.lineFragmentPadding/*右边距*/);

CGFloat broadHeight = (localTextView.contentInset.top
+ localTextView.contentInset.bottom
+ localTextView.textContainerInset.top
+ localTextView.textContainerInset.bottom);
//由于求的是普通字符串产生的Rect来适应textView的宽
contentWidth -= broadWith;

CGSize InSize = CGSizeMake(contentWidth, MAXFLOAT);

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
paragraphStyle.lineBreakMode = localTextView.textContainer.lineBreakMode;
NSDictionary *dic = @{NSFontAttributeName:localTextView.font, NSParagraphStyleAttributeName:[paragraphStyle copy]};

CGSize calculatedSize = [string boundingRectWithSize:InSize options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:dic context:nil].size;

CGSize adjustedSize = CGSizeMake(ceilf(calculatedSize.width),calculatedSize.height + broadHeight);
return adjustedSize;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: