iOS UILable根据文本内容自适应高度

#import "ViewController.h"


#define kSCREEN_WIDTH [UIScreen mainScreen].bounds.size.width


@interface ViewController ()

{

    UILabel *_label;

}


@end


@implementation ViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    [selfinitializeLabel];

}


- (void)initializeLabel

{

    _label = [[UILabelalloc] init];

    _label.numberOfLines =0;

    _label.textAlignment =NSTextAlignmentLeft;

    _label.lineBreakMode =NSLineBreakByCharWrapping;

    _label.text = @"这是一段用来测试的文字,这是一段用来测试的文字, 这是一段用来测试的文字,这是一段用来测试的文字。";

    UIFont *font = _label.font;

    CGSize labelSize = [selfsizeWithString:_label.textfont:font];

    _label.frame =CGRectMake(10,100, labelSize.width -10, labelSize.height);

    [self.viewaddSubview:_label];

}


- (CGSize)sizeWithString:(NSString *)string font:(UIFont *)font

{

    CGRect rect = [stringboundingRectWithSize:CGSizeMake(kSCREEN_WIDTH,1000)

                                       options:NSStringDrawingTruncatesLastVisibleLine |NSStringDrawingUsesFontLeading| NSStringDrawingUsesLineFragmentOrigin

                                    attributes:@{NSFontAttributeName : font}

                                       context:nil];

    return rect.size;

}


// NSStringDrawingTruncatesLastVisibleLine 如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略

// NSStringDrawingUsesLineFragmentOrigin 指定的开头从片段开头开始,不总是从头开始

// NSStringDrawingUsesFontLeading 计算行高时使用行间距

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值