动态创建的 swift 3/xcode 标签中的行距
Posted
技术标签:
【中文标题】动态创建的 swift 3/xcode 标签中的行距【英文标题】:line spacing in dynamically created swift 3/xcode labels 【发布时间】:2017-08-03 19:14:38 【问题描述】:我遇到了一个问题,我从 api 获取技能列表,我希望它们在两个不同的部分(左列和右列)中将一个技能堆叠在另一个之上。它运作良好,但如果技能比标签的宽度长,它会下降到与其余标签具有相同间距的新行。 Adobe Creative Suite 技能看起来像 Adobe Creative 和 Suite 一样。我希望 Suite 位于 Adobe Creative 之下,但更接近,因此您可以说这是一项技能。
我的代码在这里:
lblLeft.text = ""
lblRight.text = ""
if let expertiseCount = helper.expertise
for i in 0..<expertiseCount.count
if i % 2 == 0
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 10
let attrString = NSMutableAttributedString(string: lblLeft.text! + "\(expertiseCount[i].name ?? "")\n")
attrString.addAttribute(NSParagraphStyleAttributeName, value:paragraphStyle, range: NSMakeRange(0, attrString.length))
lblLeft.attributedText = attrString
else
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 10
let attrString = NSMutableAttributedString(string: lblRight.text! + "\(expertiseCount[i].name ?? "")\n")
attrString.addAttribute(NSParagraphStyleAttributeName, value:paragraphStyle, range: NSMakeRange(0, attrString.length))
lblRight.attributedText = attrString
我已经尝试过行间距,它只是改变了所有行之间的大小,所以 Adobe Creative 和 Suite 之间的空间也会发生这种变化。
【问题讨论】:
【参考方案1】:试试:
lblLeft.numberOfLines = 0
lblLeft.lineBreakMode = .byWordWrapping
lblLeft.sizeToFit()
通过将行数设置为零并打开自动换行,标签将增长到所需的行数。 sizeToFit() 应该正确调整大小。
【讨论】:
以上是关于动态创建的 swift 3/xcode 标签中的行距的主要内容,如果未能解决你的问题,请参考以下文章
swift 3 Xcode 8 中的 NSManagedObject 和 CoreData
使用核心数据swift ios获取实体的所有属性到tableview中的行中的标签