【发布时间】:2018-09-12 15:48:46
【问题描述】:
我正在尝试使用NSAttributedString 而不是完整的UICollectionView 来模仿下面的屏幕截图。
这是我的代码:
let attributedText = myList.reduce(into: NSMutableAttributedString()) { result, next in
let text = NSMutableAttributedString(string: " ")
text.append(NSMutableAttributedString(string: next))
text.append(NSMutableAttributedString(string: " "))
text.addAttributes(
[
.font: UIFont.systemFont(ofSize: 12),
.foregroundColor: UIColor.darkGrey,
.backgroundColor: UIColor.lightGray
],
range: NSRange(location: 0, length: text.length)
)
result.append(text)
guard myList.last != next else { return }
result.append(NSMutableAttributedString(string: " "))
}
attributedText.addAttributes(
[
.paragraphStyle: NSMutableParagraphStyle().with {
$0.alignment = .center
$0.lineHeightMultiple = 2
$0.lineSpacing = 12
}
],
range: NSRange(location: 0, length: attributedText.length)
)
attributedText.append(NSMutableAttributedString(string: "\n"))
myLabel.attributedText = attributedText
是否有属性可以处理这个问题,使其看起来像第一个屏幕截图?
【问题讨论】:
-
流动这个:stackoverflow.com/questions/18939025/… + 这个简单的代码你可能想得到一些想法github.com/facebookarchive/AsyncDisplayKit/pull/3008 可能会帮助你
标签: ios uilabel nsattributedstring