zoukankan      html  css  js  c++  java
  • UITextView 动态高度计算(iOS7版)

     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];
    + (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);
    }

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

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

    ps: 如果 

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

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

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

     

     

  • 相关阅读:
    IO多路复用--epoll(待学习)
    网络信息检索
    TCP协议的客户端与服务器的通信过程
    UDP网络编程
    HDU_oj_2017 字符串统计
    HDU_oj_2016 数据的交换输出
    HDU_oj_2015 偶数求和
    HDU_oj_2014 评委会打分
    HDU_oj_2013 蟠桃记
    HDU_oj_2012 素数判定
  • 原文地址:https://www.cnblogs.com/willbin/p/3689305.html
Copyright © 2011-2022 走看看