if descriptionLabel.numberOflines == 0{ descriptionLabel.numberOflines = 3}else { descriptionLabel.numberOflines = 0}descriptionLabel.lineBreakMode = NSlineBreakMode.byWorDWrapPing
我在标签的末尾添加“… more”并在正确的位置剪切文本时遇到问题.我看过其他人对类似问题的回答,但似乎没有什么工作正常.
我可以在最后一行文本上放一个按钮,这样看到标签的更多部分可点击也不是问题.我遇到的问题是在正确的位置截断文本并将更多文本放在正确的位置以便显示.
我还希望read more按钮仅在必要时出现.当只有1-3行文本时,我不希望它出现.这也是我遇到的问题.
我不能使用这个https://github.com/apploft/ExpandableLabel,因为它不支持滚动视图只是tablevIEws.
这里的快速解决方案无效:Add “…Read More” to the end of UILabel.它崩溃了应用程序.
最后,read more按钮应该与文本的最后一行和它的末尾一致.这也是一个额外的好处,它也适用于tablevIEw单元格!
解决方法 我在Github中找到了 ReadMoreTextView,它基于UITextVIEw.该库中的关键方法如下:private func characterIndexBeforeTrim(range rangeThatFits: NSRange) -> Int { if let text = attributedReadMoreText { let readMoreBoundingRect = attributedReadMoreText(text: text,boundingRectThatFits: textContainer.size) let lastCharacterRect = layoutManager.boundingRectForCharacterRange(range: NSMakeRange(NSMaxrange(rangeThatFits)-1,1),inTextContainer: textContainer) var point = lastCharacterRect.origin point.x = textContainer.size.wIDth - ceil(readMoreBoundingRect.size.wIDth) let glyphIndex = layoutManager.glyphIndex(for: point,in: textContainer,fractionOfdistanceThroughGlyph: nil) let characterIndex = layoutManager.characterIndexForGlyph(at: glyphIndex) return characterIndex - 1 } else { return NSMaxrange(rangeThatFits) - readMoreText!.length }}
要显示像“xxxx … Read More”这样的文本库
>获取UITextVIEw中可显示的字符数:使用NSLayoutManager.characterRange(forGlyphRange:,actualGlyphRange 总结
以上是内存溢出为你收集整理的ios – 阅读/查看标签末尾的更多信息全部内容,希望文章能够帮你解决ios – 阅读/查看标签末尾的更多信息所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)