swift ——多行文字前面内容省略

本文详细介绍了iOS中的lineBreakMode属性在处理文本过长时的不同截断选项,如按单词或字符换行,并提供了如何根据容器宽度和字体分割多行文本以及实现特定省略策略的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先来说一说ios中的 lineBreakMode
lineBreakMode : 设置文字过长时的显示截断样式

可选值如下

  • byWordWrapping : 以单词为单位换行,以单词为单位截断。
  • byCharWrapping :以字符为单位换行,以字符为单位截断。
  • byClipping : 以单词为单位换行,以字符为单位截断。
  • byTruncatingHead : 以单词为单位换行, 如果是单行,则开始部分有省略号。如果是多行,则中间有省略号。
  • byTruncatingTail : 以单词为单位换行, 无论是单行还是多行,都是末尾有省略号。
  • byTruncatingMiddle : 以单词为单位换行, 无论是单行还是多行,都是中间有省略号。

 三种省略方式如下


byTruncatingHead为头部截断,但是文字为多行时省略的是中间内容而不是头部内容,下面我们就来实现多行文字,文字超过设定行数后省略头部的功能

首先根据容器的宽度和字体的大小计将文本分割成多行

func splitTextIntoLines(text: String, width: CGFloat, font: UIFont) -> [String] {
        let textBox = CGSize(width: width, height: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值