背景介绍:
笔者最近在做一个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不依赖任何三方库实现多行文本的展开/收起功能?
© 版权声明
文章版权归作者所有,未经允许请勿转载,侵权请联系 admin@trc20.tw 删除。
THE END