布景介绍:
笔者最近在做一个Swift版本的iOS项目,遇到一个新的需求迭代是:
要求文字描述部分的多行文本,超过两行的部分,支撑打开和收起功用
。印象中
YYLabel
应该是支撑这样的功用完成的。因为项目是Swift项目,所以计划选用悉数Swift代码。遂,挖掘半响,找来了一位大佬翻写的YYText,库名BSText。而这用法保持一致。
又因需求适配iPad的分屏、转屏,所以额外引入了闻名布局库SnapKit。
开发环境
开发环境与项目环境保持了一致。
Xcode 13.4.1 | Swift 5.7 | Storyboard
作用图
正所谓空口无凭,先上菜——作用图,一睹为快。「多图预警」
收起状况下
打开状况下
完成细节
细节-1
多行文本,需求给予设置最大宽度
那,假如不设置最大宽度呢?那就会无法打开。
细节-2
打开操作,需求设定新的布局。
那,假如不设置高度呢?那自然是打开悉数显现了。
细节-3
收起操作,需设定新的布局
设置高度,即是默许收起状况展示的行数
细节-4
向上打开/向下打开(设置间隔top/bottom的固定间隔)
加入动画作用
示例代码
因为代码较少,这儿就直接贴出对应的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
本章回,结束
下回预告
如何用UITextView完成多行文本的打开/收起功用?
如何用UITextView不依赖任何三方库完成多行文本的打开/收起功用?