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.

     

     

  • 相关阅读:
    生成EXCEL报表
    数据库操作
    类似于qq魔法表情的窗口
    关于c#如何遍历listbox里ValueMember属性的值
    ExecuteNonQuery()
    startsWith()
    2019HDU多校第七场 HDU6646 A + B = C 【模拟】
    2019HDU多校第七场 HDU6651 Final Exam
    2019HDU多校第七场 HDU6656 Kejin Player H 【期望递归】
    P1962 斐波那契数列 【矩阵快速幂】
  • 原文地址:https://www.cnblogs.com/willbin/p/3689305.html
Copyright © 2011-2022 走看看