gpt4 book ai didi

ios - 带标签的 NSAttributedString

转载 作者:可可西里 更新时间:2023-11-01 03:36:31 24 4
gpt4 key购买 nike

如何创建具有这种文本格式的 UILabel?你会使用 NSAttributedString 吗?

enter image description here

最佳答案

NSAttributedString 可以创建带有制表位的文本列。这类似于在具有相同限制的文字处理器中完成的方式。

let text = "Name\t: Johny\nGender\t: Male\nAge\t: 25\nFavourites\t: Reading, writing"

let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.tabStops = [NSTextTab(textAlignment: NSTextAlignment.Left, location: 150, options: [:])]
paragraphStyle.headIndent = 150

label.attributedText = NSAttributedString(string: text, attributes: [NSParagraphStyleAttributeName: paragraphStyle])

Screenshot of label rendering the above attributed string

tabStops 提供了在每个选项卡之后继续文本的位置。在这里,我们在第一列之后的合理位置做了一个选项卡。headIndent 告诉标签,换行的文本需要缩进固定的量,因此它换行到下一行。

这种方法的局限性是:

  1. 制表位位置是一个固定点值,因此您需要知道自己想要什么。如果您选择的值小于某些行第一列的宽度,这些行将缩进到不同的位置。
  2. 仅当您的最后一列是换行时换行才真正有效。由于您的第二列以“:”开头,您可能只想增加 headIndent 或者也将“:”拆分为 \t:\t 并设置向上第二个制表位。如果您不让文本换行,这不是问题。

如果这些限制过于严格,您可以将标签重组为具有自动布局约束的多个标签的集合。

关于ios - 带标签的 NSAttributedString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31945333/

24 4 0