博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈iOS 自动调节文本高度
阅读量:6280 次
发布时间:2019-06-22

本文共 852 字,大约阅读时间需要 2 分钟。

文字展示是任何GUI开发的一个最常规的编程任务。可能一提及文字我们脑中想到的无非就是 Label 和 Text 这两个关键词,今天我们就谈谈 Label。

无论在 Windows 或者 Web 开发中当 Label 中显示的文字内容是一个超长的文本,我们都是习惯于由当前的UI引擎自己去计算10几年来都是一种常识。直到我用iOS,真是有种想骂娘的冲动啊,设置个Label的自动高度都得有技巧真特么的坑!

坑就坑吧,与众多同僚一样还不照样得忍受着这个糟糕的UIKit的折磨仍然得用,谁叫 iOS的项目能卖得起价呢。既然不能反抗也只能学着享受了。

UILabel

如果UILabel独立存在于view内,默认情况下是显示单行,而且UIKit会依据UILabel的断词策略自动截断文字来显示。面对这种情况我们可以使用 iOS8 的自动化局布特性来解决。

具体做法:

  1. UILabel 增加 高度约束
  2. 将 lines 增加一个最大值(随机)
  3. 进入高度属性面版,将 "Relation" 选择为 Greater Than Equal

这样 UILabel 就成为一个自增高的标签控件了。

UITableViewCell

如果UILabel控制放至于 UITableView 中时我们就需要对 tableview 进行一些更改才能让每个表格行实现自动计算行高度。具体做法如下:

首先在 viewDidLoad() 内加入以下的代码:

tableView.rowHeight = UITableViewAutomaticDimensiontableView.estimatedRowHeight = 44

estimatedRowHeight 这个值只需要设置一个与实际行高度差不多的整数就行了,其它的就交由 UIKit 自已去算就好了。

然后将 UILabellines 属性设置为 "0" (注意:这个与之前的方式就不一样了)

完成这两步我们的 tableview 内的越长文本内容就能实现自动行高计算了。

转载地址:http://xdiva.baihongyu.com/

你可能感兴趣的文章
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>
Android SharedPreferences
查看>>
css面试题
查看>>
Vue组建通信
查看>>
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>