首页 > 移动平台 > 详细

UITextView 动态高度计算(iOS7版)

时间:2014-04-30 07:24:59      阅读:425      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 NSDictionary *attrsDictionary = [NSDictionarydictionaryWithObject:[UIFontsystemFontOfSize:kCellContentFontSize]

                                                                forKey:NSFontAttributeName];

    NSAttributedString *attributedText = [[[NSAttributedString alloc] initWithString:_contentStr attributes:attrsDictionary] autorelease];

    NSInteger detailHeight = [BZDataDealer textViewHeightForAttributedText:attributedText

                                                                  andWidth:detailLabelWidth];

    UITextView *detailTextView = [[UITextView alloc] initWithFrame:CGRectMake(10, 35, detailLabelWidth, detailHeight+3)];  // 加3个像素

    detailTextView.scrollEnabled = NO;  // 是否允许滚动会影响高度的展示

    detailTextView.text = _contentStr;

    [containerView addSubview:detailTextView];
bubuko.com,布布扣

 

bubuko.com,布布扣
+ (NSInteger)textViewHeightForAttributedText:(NSAttributedString *)text andWidth:(CGFloat)width
{
    UITextView *textView = [[UITextView alloc] init];
    [textView setAttributedText:text];
    CGSize size = [textView sizeThatFits:CGSizeMake(width, FLT_MAX)];
    return (NSInteger)(size.height);
}
bubuko.com,布布扣

 

以前的方法用 先赋值, 再取textview的contentsize.height, iOS7后, 这个不能和了.

 

苹果目前很多情况下都是推荐使用 NSAttributedString 来计算一些数据.

 

ps: 如果 

detailTextView.scrollEnabled = NO;  // 是否允许滚动会影响高度的展示

不允许滚动, 计算出的高度还是会少一点. 所以上面加了3个像素.

不知道是不是苹果你妹的bug.

 

 

 

UITextView 动态高度计算(iOS7版),布布扣,bubuko.com

UITextView 动态高度计算(iOS7版)

原文:http://www.cnblogs.com/willbin/p/3689305.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!