zoukankan      html  css  js  c++  java
  • UILabel的多行显示

    来自:http://blog.csdn.net/shark0001/article/details/7007238

     

    1.N行完全自适应:
            UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 100, 21)];
            NSString *txt = @"dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
            testLabel.numberOfLines = 0; ///相当于不限制行数
            testLabel.text = txt;
    这样不行,还需要调用 [testLabel sizeToFit];


    2.限制在N行内自适应:
            UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 100, 21)];
            NSString *txt = @"dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
            testLabel.numberOfLines = 3;   ////限制在3行内自适应
            testLabel.text = txt;
         [testLabel sizeToFit];
    结果不起作用,全部在一行显示了。

    3.为了实现2的需求,需要这么做:
            CGSize maxSize = CGSizeMake(100, 21*3);
            UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 100, 21)];
            NSString *txt = @"dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
            CGSize labelSize = [txt sizeWithFont:testLabel.font constrainedToSize:maxSize lineBreakMode: UILineBreakModeTailTruncation];

            testLabel.frame = CGRectMake(testLabel.frame.origin.x, testLabel.frame.origin.y, labelSize.width, labelSize.height);
            testLabel.text = txt;

     

     

    THE END !

  • 相关阅读:
    常见算法之17---二叉树相等判断以及二叉树的复制
    常见算法之16---二维数组中查找元素
    常见算法之15---求N!末尾有多少个0
    常见算法之14---球放入盒问题
    常见算法之13---跳台阶问题
    常见算法之12---求a^n%p
    DB与java的关联
    重拾python
    Codeforces Round 212 Div 2 报告(以前没写完,现在也没心情补了,先就这样吧)
    交换Ctrl和Caps Lock键
  • 原文地址:https://www.cnblogs.com/xingchen/p/2532666.html
Copyright © 2011-2022 走看看