ios sizetofit 与 sizethatfit

 这两个一般用于设置完label的text后重新计算label的size,以及更新frame让labelsize贴合text尺寸。

  具体用法:

UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 50, 20)];
        testLabel.text = @"今天天气真不错,再过五天就放假啦啦啦啦啦啦啦啦!!";
        testLabel.font = [UIFont systemFontOfSize:14];
        testLabel.textAlignment=NSTextAlignmentCenter;
        testLabel.numberOfLines = 0;
        [testLabel sizeToFit];
        testLabel.textColor=[UIColor blackColor];
        testLabel.backgroundColor=[UIColor blueColor];
        [self.view addSubview:testLabel];

 直接使用sizetofit,计算的label尺寸是以你初始设置的width为宽,适配高度。
 效果如下:可以看出来宽度还是50 只是高度重新计算了。
在这里插入图片描述

如果用sizethatfit:

UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 50, 20)];
        testLabel.text = @"今天天气真不错,再过五天就放假啦啦啦啦啦啦啦啦!!!";
        testLabel.font = [UIFont systemFontOfSize:14];
        testLabel.textAlignment=NSTextAlignmentCenter;
        testLabel.numberOfLines = 0;
        //使用sizeThatFit计算lable大小
        CGSize sizeThatFit = [testLabel sizeThatFits:CGSizeMake(150, 0)];
         testLabel.frame = CGRectMake(testLabel.frame.origin.x, testLabel.frame.origin.y, sizeThatFit.width + 8, sizeThatFit.height);
        testLabel.textColor=[UIColor blackColor];
        testLabel.backgroundColor=[UIColor yellowColor];
        [self.view addSubview:testLabel];

   使用sizethatfit计算label设置text的宽高时可以灵活设置你想固定的一个尺寸纬度,
   比如我上面可以固定width = 150,计算高度。
   算好之后要重新设置frame,可以给宽度再计算加上几pt使他左右有一定间隔。

    效果如下:

在这里插入图片描述

 上面testlabel的宽度就是按你设置的定宽150,然后计算的高度。 这里注意一下,如果你设置的定宽>实际计算出来的宽度,最终sizetofit计算出来的宽度
 还是会以实际宽度为准。也就是会设置的定宽和实际宽度里的更小值为最终宽度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值