首页 > 解决方案 > UILabel swift 5 的“显示更多/显示更少”按钮

问题描述

我试图在 tableView 单元格中为我的 UILabel 实现“显示更多/显示更少”功能。我试过在网上搜索解决方案,但它们似乎都已经过时了。

标题文本应该有 2 行,如果超过 2 行,它将扩展到全文

 lazy var captionText: UILabel = {
        let lbl = UILabel()
        lbl.numberOfLines = 2
        lbl.lineBreakMode = .byWordWrapping
        return lbl
    }()

func setupUI(viewModel: FeedModel) {

        captionText.text = viewModel.postDescription
}

我希望最终结果看起来像这样:

可扩展的 UILabel 示例

扩展的 UILabel 示例

标签: iosswiftuitableviewuilabeluitextview

解决方案


您可以在 Swift 中尝试这个第 3 方:https ://github.com/apploft/ExpandableLabel

将您的标签 UILabel 设置为 ExpandableLabel 并设置所需的属性:

yourLabel.numberOfLines = 2
yourLabel.collapsed = true
yourLabel.collapsedAttributedLink = NSAttributedString(string: "See more")
yourLabel.ellipsis = NSAttributedString(string: "...")

如果ExpandableLabelDelegate您想在链接被触摸时收到通知,则可以这样做。


推荐阅读