ExpandableLabel iOS中的“See Less”

我正在使用第三方库ExpandableLabel来实现更多function。 我正在寻找swift唯一的解决方案,包括标签中的文本而不是按钮,所以这完美。 在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 

我能够通过查看源文件中的text属性的setter来识别这种行为。