UI

iOS lineBreakMode详解

2022-05-17  本文已影响0人  Meb_sunny

多行和多行文本的字符截断类型样式

lineBreakMode : 设置文字过长时的显示截断样式

先看看系统LineBreakMode的有多少种?


public enum NSLineBreakMode : Int {

    case byWordWrapping = 0 // Wrap at word boundaries, default

    case byCharWrapping = 1 // Wrap at character boundaries

    case byClipping = 2 // Simply clip

    case byTruncatingHead = 3 // Truncate at head of line: "...wxyz"

    case byTruncatingTail = 4 // Truncate at tail of line: "abcd..."

    case byTruncatingMiddle = 5 // Truncate middle of line:  "ab...yz"
}
  1. byWordWrapping : 以单词为单位换行,以单词为单位截断。
  2. byCharWrapping :以字符为单位换行,以字符为单位截断。
  3. byClipping : 以单词为单位换行,以字符为单位截断。
  4. byTruncatingHead : 以单词为单位换行, 如果是单行,则开始部分有省略号。如果是多行,则中间有省略号。
  5. byTruncatingTail : 以单词为单位换行, 无论是单行还是多行,都是末尾有省略号。
  6. byTruncatingMiddle : 以单词为单位换行, 无论是单行还是多行,都是中间有省略号。

踩坑记:设置LineBreakMode不生效,导致前三种截断结果一样

解决方法:设置文本为多行。

label.numberOfLines = 0  //设置多行文本

看看设置多行文本前后的对比效果
未换行前三种截断没有生效
添加换行后,截断效果生效

不换行 添加换行

最后我们看看六种截断样式的区别

  1. 中文截断样式,因为中文字符的特殊性,中文字符是一个整体,所以截断样式不太明显,
    中文截断
  2. 英文样式 就很直观的显示6种截断的区别
    英文截断
上一篇 下一篇

猜你喜欢

热点阅读