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 !

  • 相关阅读:
    C++调用WebService
    vs2005 环境的字体和颜色的设置
    自娱自乐~经典24点游戏
    再探利用C++的STL和堆栈编程思想实现数学四则运算计算结果
    如何在Linux中关闭apache服务(转)
    ios推送:本地通知UILocalNotification
    ASIHTTPRequest的使用(转)
    实战新浪微博、腾讯微博的分享功能(转)
    UIImagePickerController拍照与摄像(转)
    iOS通过http post上传图片 (转)
  • 原文地址:https://www.cnblogs.com/xingchen/p/2532666.html
Copyright © 2011-2022 走看看