我正在使用第三方库ExpandableLabel来实现,以了解更多功能。我正在寻找仅在标签中而不是按钮中包含文本的快速解决方案,因此这非常有效。在IB中添加库并更改标签类型之后,我只需要几行代码:

@IBOutlet weak var myLabel: ExpandableLabel!

myLabel = 3
myLabel = true

但是,我无法弄清楚在完全扩展后如何实现“少看”。我添加了委托方法:
ExpandableLabelDelegate

和功能:
// MARK:ExpandableLabel委托
func willExpandLabel(_ label: ExpandableLabel) {

}

func didExpandLabel(_ label: ExpandableLabel) {

}

func willCollapseLabel(_ label: ExpandableLabel) {

}

func didCollapseLabel(_ label: ExpandableLabel) {

}

func shouldCollapseLabel(_ label: ExpandableLabel) -> Bool {
    return true
}

试图获得对该过程的控制权,但是仍然很挣扎。还有其他人设法做到这一点吗?如果是这样,请您在这里帮我...

最佳答案

根据我的个人经验,我注意到expandedAttributedLink仅在您将其设置为实际标签文本之前有效。

infoLabel.setLessLinkWith(lessLink: "less", attributes: [NSFontAttributeName: boldItalicFont], position: nil)
infoLabel.text = viewModel.description
infoLabel.collapsedAttributedLink = NSAttributedString(string: "more", attributes: [NSFontAttributeName: boldItalicFont]);
infoLabel.ellipsis = NSAttributedString(string: "...")
infoLabel.collapsed = true

通过查看the source filetext属性的设置器,我能够识别出此行为。

08-08 07:01