zoukankan      html  css  js  c++  java
  • UILabel的size根据文字的长短变化

      UILabel *label = [[UILabel alloc] init];

        label.backgroundColor = [UIColor blackColor];

        [self.view addSubview:label];

        label.text = @"这是文字";

        label.textColor = [UIColor redColor];

        CGSize maxsize = CGSizeMake(320, 100);

        //这个字典里面的属性别写错

        NSDictionary *atttibute = @{NSFontAttributeName:label.font};

      //关键点,根据字体大小和文字长短计算出size

        CGSize textSize = [label.text boundingRectWithSize:maxsize options:NSStringDrawingUsesLineFragmentOrigin attributes:atttibute context:nil].size;

        CGRect textframe = label.frame;

        textframe.size = textSize;

        label.frame = textframe;

     

    //options属性 可以多选

    typedef NS_OPTIONS(NSInteger, NSStringDrawingOptions) {

        NSStringDrawingUsesLineFragmentOrigin = 1 << 0, // 如果没使用这个,高度会被忽略

        NSStringDrawingUsesFontLeading = 1 << 1, // 计算行高时使用行间距。(译者注:字体大小+行间距=行高)

        NSStringDrawingUsesDeviceMetrics = 1 << 3, // 计算布局时使用图元字形(而不是印刷字体)。

        NSStringDrawingTruncatesLastVisibleLine NS_ENUM_AVAILABLE(10_5, 6_0) = 1 << 5, // 如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。如果指定了NSStringDrawingUsesLineFragmentOrigin选项,则该选项被忽略。

    } NS_ENUM_AVAILABLE(10_0, 6_0);

  • 相关阅读:
    圣战结束
    Linux_系统管理_网络配置_命令行配置网络
    Window下MySQL安装配置
    Linux_系统管理_根据进程名kill进程
    Windows下PHP安装配置
    Apache + PHP + MySql windows xp 安装设置
    visual studio 2008生成asp.net网站的问题?
    数据库抽象层PDO和ADOdb
    正则表达式修正符
    linux搭建SVN服务器
  • 原文地址:https://www.cnblogs.com/xj76149095/p/5040149.html
Copyright © 2011-2022 走看看