iOS UIlabel 自动换行

wjx-king· 2020-02-18

解决方案: 1.获取UILabel的frame大小 2.获取UILabel的字体大小 3.获取UILabel的文本内容 4.根据上面的3部分数据,计算文本显示区域大小 5.根据4计算的大小,实时改变UILabel的frame

UILabel *label = [[UILabel alloc] init];

label.text = @"我是换行的标签在这里可以实现标签换行功能,不用担心文本过多文字跑出标签";

NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:14]};

CGSize labelSize = [label.text boundingRectWithSize:CGSizeMake(200, 5000) options: NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attribute context:nil].size;

//200为UILabel的宽度,5000是预设的一个高度,表示在这个范围内

//注意:之前使用了NSString类的sizeWithFont: constrainedToSize: lineBreakMode:方法,但是该方法已经被iOS7 Deprecated了,而iOS7新出了一个boudingRectWithSize: options: attributes: context:方法来代替。

label.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width, labelSize.height);

//保持原来Label的位置和宽度,只是改变高度。

label.numberOfLines = 0;//表示label可以多行显示

label.textColor = UICOLOR_FROM_RGB(100, 100, 100, 1);

label.font = [UIFont systemFontOfSize:14];

[self.view addSubview:label];
北京pk赛车开奖记录 东方6十1历史开奖结果 江苏快3双乐彩 广东好彩1开奖走势图 2018年股票市场 大地棋牌官方网站首页 加拿大pc28开奖网站 浙江20选5走势图带连线图 东方6 1最高奖金是多少 网上赚钱的软件有哪 广东快乐10分新闻 极速赛车规律怎么找 五分彩走势图怎么看能懂 安徽快3开奖结果形态走势图百度乐彩 新11选5 任选5 庄牛网配资 海王捕鱼怎么修改金币