标签布局(等间隙与间隙不等两种情况)

本文介绍 UILabel 如何根据内容自动调整大小及布局的方法,包括如何计算 UILabel 的最佳尺寸和如何利用 UICollectionView 实现标签间等间距布局。此外,还提供了一个计算文字宽度和高度的示例函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一标签的间隙不相等

 UILabel *l = [[UILabel alloc] init];
    l.text = @"fdsffdadafdsaad";//必须先赋值在计算


    //根据指定大小,返回最佳大小。不会修改控件的大小
    CGSize size = [l sizeThatFits:CGSizeMake(MAXFLOAT, MAXFLOAT)];
    //会调用sizeThatFits:根据内容计算控件大小,然后修改控件大小
    [l sizeToFit];

通过UICollectionView计算每个Item的大小,自动布局

这里写图片描述

二、间隙相等

这里写代/**
 *  根据文字计算宽度和高度
 *
 *  @param attributes 文字属性
 *  @param size       文字大最大范围
 *
 *  @return 计算文字的大小
 */
- (CGSize)sizeWithAttributes:(NSDictionary *)attributes maxSize:(CGSize)maxSize
{
    return [self boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
}码片
  //根据文字计算按钮的宽度
        CGFloat buttonWidth = [items[i] sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17]} maxSize:CGSizeMake(MAXFLOAT, kWaterPullButtonHeight)].width + 2*kWaterPullButtonTitleInsertSpace;


        //大于屏幕的宽
        if (widthSum + buttonWidth + kButtonItemSpace > self.frame.size.width)
        {
            //换行
            widthSum = kButtonItemSpace;

            heightSum += kWaterPullButtonHeight + kButtonItemSpace;
        }


        //设置坐标
        btn.frame = CGRectMake(widthSum, heightSum, buttonWidth, kWaterPullButtonHeight);

        //计算宽度总和
        widthSum +=  buttonWidth + kButtonItemSpace;


    }

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值