取巧处理:UILabel(IOS开发) 超出宽度的文本省略号的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了取巧处理:UILabel(IOS开发) 超出宽度的文本省略号的问题相关的知识,希望对你有一定的参考价值。
参考技术AUILabel 默认情况下,单行文本、使用固定宽高、固定字体的时候,超出的文本会被省略号代替,但对于某些设计中,省略号是不需要的(设计合理性不在本文讨论范围内)。考虑的采取几种方式:
实现可行,但总觉得每次渲染都得重新计算,这有多麻烦
UITextView 是文本域的显示组件,默认情况不存在最后一个字的溢出问题(折到第2行了),但UITextView 本身比UIlabel 可响应用户的操作更多,所以需要做一些设置才能保障正常的事件响应(尤其在Cell 里面的时候)
示例(仅贴出主要差异部分)
最终效果:
注意点:
1.使用NSAttributedString对文本设置相应的样式和行高、行距;
2.禁止userInteractionEnabled,防止UITextView的事件响应(编辑、选择);
3.resignFirstResponder,设为非第一响应者,在cell中尤其重要,否则点击文字无法触发cell 的 didSelected 的事件;
4.相比UILabel,内存占用多一些,尤其在大量cell中使用时。
懒也是一种生产力
iOS 10中的UILabel,制作文字字体
【中文标题】iOS 10中的UILabel,制作文字字体【英文标题】:UILabel in iOS 10, make text font 【发布时间】:2017-01-30 23:01:58 【问题描述】:如果文本超出标签的宽度/高度限制的大小,我在使用 iOS 10 时无法将文本放入我的 UILabel 中。
这是故事板中 UILabel 的尺寸检查器:
我希望 UILabel 本身始终具有固定的宽度和高度,就像它当前在情节提要中一样。我只希望文本自动换行/更改字体大小并尽其所能,以适应该宽度/高度规范的范围。我在 UILabel 上尝试了以下操作:
adjustsFontSizeToFitWidth
numberOfLines = 0
我似乎无法获得正确的配置。
【问题讨论】:
听起来您尝试了正确的方法 - adjustsFontSizeToWidth - 但如果您包含代码,可能会出现问题。另外,检查您是否正确创建了 IBOutlet。 【参考方案1】:您必须将minimumScaleFactor
设置为小于1 并将numberOfLines
设置为1 或更大,adjustsFontSizeToFitWidth
才能生效。
Swift 代码
label.numberOfLines = 1
label.adjustsFontSizeToFitWidth = true
label.minimumScaleFactor = 0.5
界面生成器
【讨论】:
以上是关于取巧处理:UILabel(IOS开发) 超出宽度的文本省略号的问题的主要内容,如果未能解决你的问题,请参考以下文章
角落不是UILabel和UIbutton ios swift的圆形
iOS设置UILabel最大宽度(preferredMaxLayoutWidth)