UILabel中的更多button就像AppStore中的任何应用程序描述一样
我有一个myObject的描述,我显示在UILabel中。 如果描述太长,我想添加“更多”button到我的UILabel
。 在Github上,我发现TTTAttributedLabel允许使用超链接。 问题是, UILabel
或UITextView
有一些特殊的function来解决我的问题,或者我必须使用TTTAttributedLabel
?
最好的select当然是使用TTTAttributedLabel
。
UILabel
和UITextView
只是为了显示静态文本而devise的。 没有添加可点击元素的方法。
作为替代scheme,在我倾斜TTTAttributedLabel
之前,我简单地在UILabel
放置了一个具有自定义样式的UIButton
。 该button是不可见的,但仍然响应水龙头。 这对静态文本效果最好,因为button需要正确放置在界面上才能覆盖文本的正确部分。
使用TTTAtributtedLabel
很容易在最后添加“更多”文本。
你有truncationTokenString
和truncationTokenStringAttributes
。 超级简单!
例:
[label setTruncationTokenString:@"... MORE"];
https://github.com/mattt/TTTAttributedLabel
文档: http : //cocoadocs.org/docsets/TTTAttributedLabel/1.8.0/Classes/TTTAttributedLabel.html#//api/name/truncationTokenString
在我的情况下,我不需要更多的东西,因为我只是在select单元格的时候改变了numberOfLines
,使它成长。
你可以试试Swift写的第三个库ExpandableLable 。
将UILabel的自定义类设置为ExpandableLabel并设置所需的行数和折叠文本:
expandableLabel.numberOfLines = 5 expandableLabel.collapsedAttributedLink = NSAttributedString(string: "more") expandableLabel.ellipsis = NSAttributedString(string: "...") // update label expand or collapse state expandableLabel.collapsed = true
您可能需要设置一个delegate
,以便在链接被触摸的情况下得到通知。