• 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);

  • 相关阅读:
    NYOJ232 How to eat more Banana
    NYOJ716 River Crossing(第六届河南省程序设计大赛)
    HDOJ1847 Good Luck in CET4 Everybody!
    NYOJ234 吃土豆
    HDOJ1850Being a Good Boy in Spring Festival
    HDOJ2176 取(m堆)石子游戏
    NYOJ78 圈水池(简单凸包)
    POJ1656 Counting Black (二维树状数组)
    HDOJ1892 See you~(二维树状数组)
    取石子问题 – 1堆
  • 原文地址:https://www.cnblogs.com/xj76149095/p/5040149.html
Copyright © 2020-2023  润新知