zoukankan      html  css  js  c++  java
  • iOS UILabel计算宽度和高度

    1、根据文本计算size,这里需要传入attributes

        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 0, 0)];
        label.text = @"12331afaa我是谁的谁";
        label.textColor = [UIColor redColor];
        label.backgroundColor = [UIColor greenColor];
        label.font = [UIFont systemFontOfSize:20];
        [self.view addSubview:label];
    
        CGSize size = [label.text sizeWithAttributes:@{NSFontAttributeName:label.font}];
        label.frame = CGRectMake(20, 100, size.width, size.height);
        // 193.482031    heigth:23.867188
    Method 1

    2、富文本计算size

        CGSize size = [label.attributedText size];
        label.frame = CGRectMake(20, 100, size.width, size.height);
        // 193.482031    heigth:23.867188
    Method 2

    3、通过UIView的 sizeThatFits

        // 在单行文本的情况下,参数size设置多少都无所谓,所以里传了CGSizeZero
        CGSize size = [label sizeThatFits:CGSizeZero];
        label.frame = CGRectMake(20, 100, size.width, size.height);
        // 193.500000    heigth:24.000000
        
        // 可用此方法计算高度
        label.text = @"ABCDEFGHIJKLMN";
        label.numberOfLines = 0;
        label.textAlignment = NSTextAlignmentCenter;
        CGSize size = [label sizeThatFits:CGSizeMake(15, 0)];
        label.frame = CGRectMake(20, 100, size.width, size.height);
        // 15.000000    heigth:334.500000
    Method 3
  • 相关阅读:
    PL/SQL 中查询CLOB字段内容
    ubuntu14.04 swap not avalible交换分区不能使用
    ubuntu14.04安装ia32-lib
    rtems资料分享
    NIR相机
    rsync详解
    SublimeText3使用技巧总结
    msm8610 lcd driver code analysis
    Qualcomm Android display架构分析
    LCD framebuffer驱动设计文档
  • 原文地址:https://www.cnblogs.com/chenyanliang/p/9687756.html
Copyright © 2011-2022 走看看