zoukankan      html  css  js  c++  java
  • iOS-动态计算Label的高度

    一. 要求

    1.根据网络请求的回来的字符串内容,动态计算Label的高度.

    二. 注意点

    1. 要注意设置label 的 numberOfLines 为0;

    2. MAXFLOAT 的作用. 设置高度无限大.

    三.代码

    #import "ViewController.h"

    @interface ViewController ()

    @property (nonatomic,strong) UILabel * label;

    @end

     @implementation ViewController

     - (void)viewDidLoad

    {

        [super viewDidLoad]; 

        [self createLabel];

    }

    - (void)createLabel

    {

        self.label = [[UILabel alloc] init];

        

        self.label.backgroundColor = [UIColor yellowColor];

        

        NSString * str = @"1、毕业后才知道校园恋爱是最纯洁的; 2、毕业后才知道学习是最重要的; 3、毕业后才知道校园生活是最幸福的; 4、毕业后才知道宿舍生活是最好的; 5、毕业后才知道食堂的饭菜是最便宜的; 6、毕业后才知道上学是最美妙的事。 7、毕业后才知道学生花钱最大手大脚......";

        

        self.label.text = str;

        self.label.numberOfLines = 0;

        

        [self.view addSubview:self.label];

        UIFont * font = self.label.font;

    // iOS 7.0 之前的方法.已经被弃用    

    //    CGSize size = [self.label.text sizeWithFont:font constrainedToSize:CGSizeMake(_label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];

        

        NSDictionary * dict = @{

                                NSFontAttributeName : font

                                };

         //计算label的文字宽高

        CGSize size = [self.label.text boundingRectWithSize:CGSizeMake(self.view.frame.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil].size;

        CGFloat nameH = size.height;

        CGFloat nameW = size.width;

        NSLog(@"w: %f --h: %f",nameW,nameH);    

    // 设置label的动态frame

        self.label.frame = CGRectMake(0, 30, nameW, nameH);

    }

    @end

     
    你的一次推荐就是对我莫大的支持。感觉不错,给个推荐或者评论吧。
  • 相关阅读:
    Conntect Bluetooth devices in iOS.
    Why NSAttributedString import html must be on main thread?
    IOS7 SDK 几宗罪
    How to browse the entire documentation using XCode 5 Documentation and API Reference ?
    High Precision Timers in iOS / OS X
    [UWP]抄抄《CSS 故障艺术》的动画
    [Microsoft Teams]使用连接器接收Azure DevOps的通知
    [WPF 自定义控件]自定义一个“传统”的 Validation.ErrorTemplate
    [WPF 自定义控件]在MenuItem上使用RadioButton
    [WPF 自定义控件]创建包含CheckBox的ListBoxItem
  • 原文地址:https://www.cnblogs.com/mancong/p/5395782.html
Copyright © 2011-2022 走看看