IOS开发-实现一个高度自适应的UILabel和一个宽度自适应的UILabel

发布时间 2023-07-02 15:35:52作者: ZihangChu

1.实现一个高度自适应的UILable

思路:UILabel初始化之后,先不要设置他的宽度和高度,等到设置好text属性和font属性之后,根据text的长度以及font的大小来计算UILabel控件的高度

//实现一个高度自适应的uilabel
    UILabel *label2 = [[UILabel alloc] init];
    label2.text = @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx想想想想想想想想想想想想想想想想想学习学习学习学习";
    label2.font = [UIFont systemFontOfSize:13];
    label2.frame = CGRectMake((self.view.frame.size.width-200)/2, 100, 200, label2.text.length*13/200*16);
    label2.numberOfLines =0;
    [self.view addSubview:label2];

根据 label2.text.length*13/200计算出文字占几行然后乘以UILabel的高度加3pt,这里加3是为了确保文字能完全展示出来。一般情况下加3就足够了

 

2.实现一个宽度自适应的UILable

思路:UILabel初始化之后,先不要设置他的宽度和高度,等到设置好text属性和font属性之后,根据text的长度以及font的大小来计算UILabel控件的宽度

 //实现一个宽度自适应的uilabel
    UILabel *label3 = [[UILabel alloc] init];
    label3.text = @"想想想想想想想想想想想想想想想休息休息";
    label3.font = [UIFont systemFontOfSize:13];
    label3.frame = CGRectMake((self.view.frame.size.width-label3.text.length*13)/2, 200,  label3.text.length*16,13);
    label3.numberOfLines = 0;
   
    [self.view addSubview:label3];

根据label3.text.length*16计算出UILable的宽度,同样根据字号加上3pt,确保文字能完全展示出来