布景介绍:

笔者最近在做一个Swift版本的iOS项目,遇到一个新的需求迭代是:要求文字描述部分的多行文本,超过两行的部分,支撑打开和收起功用

印象中 YYLabel 应该是支撑这样的功用完成的。

因为项目是Swift项目,所以计划选用悉数Swift代码。遂,挖掘半响,找来了一位大佬翻写的YYText,库名BSText。而这用法保持一致。

又因需求适配iPad的分屏、转屏,所以额外引入了闻名布局库SnapKit。


开发环境

开发环境与项目环境保持了一致。

Xcode 13.4.1 | Swift 5.7 | Storyboard

作用图

正所谓空口无凭,先上菜——作用图,一睹为快。「多图预警」

收起状况下

Swift中UILabel多行文本的展开/收起

打开状况下

Swift中UILabel多行文本的展开/收起

完成细节

细节-1

多行文本,需求给予设置最大宽度

那,假如不设置最大宽度呢?那就会无法打开。

Swift中UILabel多行文本的展开/收起

细节-2

打开操作,需求设定新的布局。

那,假如不设置高度呢?那自然是打开悉数显现了。

Swift中UILabel多行文本的展开/收起

细节-3

收起操作,需设定新的布局

设置高度,即是默许收起状况展示的行数

Swift中UILabel多行文本的展开/收起

细节-4

向上打开/向下打开(设置间隔top/bottom的固定间隔)

加入动画作用

Swift中UILabel多行文本的展开/收起

示例代码

因为代码较少,这儿就直接贴出对应的Podfile和全量代码。

# Podfile
platform:ios,'14.0'
source 'https://cdn.cocoapods.org/'
# source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target 'TestUItextView' do
 pod 'BSText'
 pod 'SnapKit'
end

Swift中UILabel多行文本的展开/收起

本章回,结束


下回预告

如何用UITextView完成多行文本的打开/收起功用?

如何用UITextView不依赖任何三方库完成多行文本的打开/收起功用?