背景:
相信很多朋友都遇到过,文本的内容长度不一,需要根据内容的多少来自动换行处理。
场景:
很多APP中评论,有的评论长,有的评论短,有的一行,有的多行。
下面以评论的实现为例来说说具体如何实现。
技术点:
UILabel的自动换行,自动换行的同时要自适应Frame大小。
UITableView的行高自适应内容,实时调整高度。
实现方法:
UILabel的自动换行
- 获取UILabel的frame大小
- 获取UILabel的字体大小
- 获取UILabel的文本内容
- 根据上面的3部分数据,计算文本显示区域大小
- 根据4计算的大小,实时改变UILabel的frame
code如下:
NSString * labelStr = @“你好,这是UILabel的自动换行测试内容,主要实现多行数据的自动换行,自适应不同行数的数据”;
CGSize labelSize = {0, 0};
labelSize = [labelStr sizeWithFont:[UIFont systemFontOfSize:14]
constrainedToSize:CGSizeMake(200.0, 5000)
lineBreakMode:UILineBreakModeWordWrap];
//14 为UILabel的字体大小
//200为UILabel的宽度,5000是预设的一个高度,表示在这个范围内
label.numberOfLines = 0;//表示label可以多行显示
label.lineBreakMode = UILineBreakModeCharacterWrap;//换行模式,与上面的计算保持一致。
label.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width, labelSize.height);//保持原来Label的位置和宽度,只是改变高度。
UITableView的行高自适应内容
这个和上面的类似,直接上Code:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString * labelStr = @“你好,这是UILabel的自动换行测试内容,主要实现多行数据的自动换行,自适应不同行数的数据”;
CGSize labelSize = {0, 0};
labelSize = [labelStr sizeWithFont:[UIFont systemFontOfSize:14]
constrainedToSize:CGSizeMake(200.0, 5000)
lineBreakMode:UILineBreakModeWordWrap];
//14 为UILabel的字体大小
//200为UILabel的宽度,5000是预设的一个高度,表示在这个范围内
return labelSize.height + delta;
//delta 是Cell除了自适应控件UILabel外的其它控件所占的高度。
}
分享到:
相关推荐
UILabel 自动换行的demo,修改代码中的文字就可以自动适应
UILabel ios7 与ios7之前实现自适应撑高的方法, 文本的内容长度不一,需要根据内容的多少来自动换行处理文本的内容。这里简单实现ios7自适应撑高的方法.
适用于 IOS 7 之后, 做项目的时候经常需要动态的根据 label 的文字来计算 frame,每次都得写麻烦,给 label 写了个分类可以根据label 的文字来返回 label 的 CGSize.使用的时候添加 分类 即可.
UILabel 和UITextField 的常用api 介绍和使用
uilabel的内容的颜色处理
对UILabel 做了一个简单的封装,对复制(复制时截取字符串,复制追加字符串),行间距,字间距,以及改变label中某段字符串的颜色和字体
下面小编就为大家带来一篇iOS 设置UILabel的行间距并自适应高度的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
前言 UILabel 是的使用频率是非常频繁,当文字较多的时候,会显得密密麻麻的,不利于...综上所述:分为以下三步进行设置“UILabel 内容的间距及高度的计算” 1. 通过使用 UILbael 的分类实现修改间距的功能。 2 .
ios uilabel的代码 ios uilabel的代码 ios uilabel的代码 ios uilabel的代码 ios uilabel的代码 ios uilabel的代码
iOS中UILabel设置居上对齐、居中对齐、居下对齐 在iOS中默认的UILabel中的文字在竖直方向上只能居中对齐,博主参考国外网站,从UILabel继承了一个新类,实现了居上对齐,居中对齐,居下对齐。 具体如下: // // ...
主要介绍了IOS 中UITextField,UITextView,UILabel 根据内容来计算高度的相关资料,需要的朋友可以参考下
主要为大家详细介绍了iOS UILabel根据内容自动调整高度,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
博客中的IOS TableView的Cell高度自适应,UILabel自动换行适应 的项目源码
昨晚在阅读开源中国博客的时候,发现人家的cell显示1.n文字,今天在研究了一番并参考被人代码之后,将此特效做出来,供大家参考,不足之处还望大家批评指正。 链接:http://my.oschina.net/sayhellovip/blog/661372
简单方便的给UILabel内容中某几个文字添加点击事件,实现定制要求
iOS 数字滚动 UILabel
ios UILabel上下划线、代码简介易懂、无缝插入
iOS开发中,实现UILabel滚动,类似于跑马灯效果;