iOS中文本自适应高度显示完所有文字

本文介绍如何使用UILabel展示一段文本,并通过代码实现UILabel的高度自适应,确保文本完整显示且布局美观。

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

/*----------  文本自适应高度 -----------*/

    UILabel * descritionLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 220, 300)];    

    NSString * desText = @"乔布斯是改变世界的天才,他凭敏锐的触觉和过人的智慧,勇于变革,不断创新,引领全球资讯科技和电子产品的潮流,把电脑和电子产品不断变得简约化、平民化,让曾经是昂贵稀罕的电子产品变为现代人生活的一部分。";

    descritionLabel.text = desText;

    descritionLabel.backgroundColor = [UIColor yellowColor];

    descritionLabel.textColor = [UIColor colorWithRed:11/255.0 green:179/255.0 blue:252/255.0 alpha:0.9];

    descritionLabel.font = [UIFont systemFontOfSize:20];

    descritionLabel.lineBreakMode = NSLineBreakByTruncatingHead;//设置换行模式

    descritionLabel.numberOfLines = 0; //设置文本行数为0时则不限制

    CGSize contanSize = CGSizeMake(280, 400);//大小约束

    //获取能显示完文本的大小

    CGRect autoRect = [desText boundingRectWithSize:contanSize options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:descritionLabel.font} context:nil];

    //用获取的大小重新设置frame

    descritionLabel.frame = CGRectMake(50, 460, 280, autoRect.size.height);

    

    [self.view addSubview:descritionLabel];

效果图如下所示:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值