【问题标题】:Reducing Line Spacing of Text in SwiftUI在 SwiftUI 中减少文本的行距
【发布时间】:2020-09-07 14:56:46
【问题描述】:

对于某些字体,内置行间距大得令人不快。

SwiftUI 为我们提供了 Text 修饰符 .lineSpacing() 来调整文本行之间的间距(也称为 leading,与前导/尾随无关)。它的值指定要在连续文本行之间放置的附加间距的点数,因此.lineSpacing(0) 不会导致任何变化。不幸的是,它似乎对负值没有反应。 .lineSpacing(-10) 产生与lineSpacing(0) 相同的结果。

有没有人知道不用 UIKit 就可以减少 SwiftUI 中的行距?

【问题讨论】:

  • 不是替换,是添加。这是文档:“此值始终为非负值。此值包含在布局管理器中的行片段高度中。”
  • 是的,我们知道该值是对正常间距的补充,而不是替代它,因为 .lineSpacing(0) 旨在无效。谢谢@Asperi - 但仍在寻找解决方案。
  • 或者,您可以换行 UILabel 以减少行高:stackoverflow.com/a/68288238/7337835
  • 谢谢@TotoMinai — 但是,正如我在原帖中提到的,我正在寻找不使用 UIKit 的 SwiftUI 解决方案。

标签: text swiftui line-spacing


【解决方案1】:

您可以将文本分成多行并在每一行周围应用负填充,如下所示:

Text("This is the first Line")
    .padding(-10)
Text("This is the second Line")
    .padding(-10)

【讨论】:

  • 谢谢,@user14952184。对于不需要任何自动文本换行的特殊情况,这是一个好主意。虽然不适用于一般情况。
猜你喜欢
  • 2013-08-11
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
  • 1970-01-01
  • 2015-04-02
  • 2021-01-23
  • 1970-01-01
  • 2015-04-29
相关资源
最近更新 更多