浅谈iOS 自动调节文本高度
2024-08-22 22:45:23
文字展示是任何GUI开发的一个最常规的编程任务。可能一提及文字我们脑中想到的无非就是 Label 和 Text 这两个关键词,今天我们就谈谈 Label。
无论在 Windows 或者 Web 开发中当 Label 中显示的文字内容是一个超长的文本,我们都是习惯于由当前的UI引擎自己去计算10几年来都是一种常识。直到我用iOS,真是有种想骂娘的冲动啊,设置个Label的自动高度都得有技巧真特么的坑!
坑就坑吧,与众多同僚一样还不照样得忍受着这个糟糕的UIKit的折磨仍然得用,谁叫 iOS的项目能卖得起价呢。既然不能反抗也只能学着享受了。
UILabel
如果UILabel独立存在于view内,默认情况下是显示单行,而且UIKit会依据UILabel的断词策略自动截断文字来显示。面对这种情况我们可以使用 iOS8 的自动化局布特性来解决。
具体做法:
- 为
UILabel
增加 高度约束 - 将 lines 增加一个最大值(随机)
- 进入高度属性面版,将 "Relation" 选择为
Greater Than Equal
这样 UILabel 就成为一个自增高的标签控件了。
UITableViewCell
如果UILabel控制放至于 UITableView
中时我们就需要对 tableview 进行一些更改才能让每个表格行实现自动计算行高度。具体做法如下:
首先在 viewDidLoad()
内加入以下的代码:
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 44
estimatedRowHeight
这个值只需要设置一个与实际行高度差不多的整数就行了,其它的就交由 UIKit 自已去算就好了。
然后将 UILabel
的 lines
属性设置为 "0" (注意:这个与之前的方式就不一样了)
完成这两步我们的 tableview 内的越长文本内容就能实现自动行高计算了。
最新文章
- Linux网卡bounding详解
- C# List.ForEach 方法
- centos之开放80端口
- Win10 保存Element到相册
- Lucene搜索方法总结
- [转载] [Mark]分布式存储必读论文
- 转:UniqueID和ClientID的来源
- google calendar api v3
- bzoj 2285 [Sdoi2011]保密(二分,spfa + 最大流)
- PHP函数补完:preg_match()
- 2015第43周一solr相关概念
- 【转】stdin, stdout, stderr 以及重定向
- java中线程中的相关知识点
- 求a和b的最大公约数
- table表头thead固定
- java基础(三)-----java的三大特性之多态
- glup简单应用---gulpfile.js
- [Codeforces757G]Can Bash Save the Day?——动态点分治(可持久化点分树)
- python入门知识点(上)
- Linux下使用命令行配置IPMI