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来识别这种行为。