【问题标题】:Is there a SwiftUI equivalent for lineBreakMode for Text views?文本视图的 lineBreakMode 是否有 SwiftUI 等效项?
【发布时间】:2019-09-15 14:37:27
【问题描述】:

我有一个文本视图,我想将它配置为包裹第一个不适合的字符。在 UIKit 中,这相当于设置 label.lineBreakMode = .byCharWrapping。这已经为 SwiftUI Text 实现了吗?我在documentation for Text 中找不到任何内容。

我想这样做的原因是我要向用户显示一个长代码,所以最好用字符而不是单词来换行。

【问题讨论】:

    标签: swiftui


    【解决方案1】:

    不确定这是否有帮助,但我正在使用以下内容,这会导致长词被字符包裹:

    Text("Supercallifragilisticexpialidocious")
        .font(.system(size: 100))
        .minimumScaleFactor(0.01)
        .lineLimit(3)
        .multilineTextAlignment(.leading)
    

    不幸的是,对于我的用例,我不希望文本按字符换行。如果我设置 lineLimit(1) 可以正常工作并且减小字体大小以将文本保持在 1 行。但是,如果 Text 是多个单词,例如 Text("Practically perfect in every way") 那么我希望字符串由单词包裹。我似乎无法同时获得多个单词的自动换行和长单词的字体缩放。

    【讨论】:

    • 我遇到了一个问题,如果使用 lineLimit(1),如果设备旋转,文本将变为最小尺寸。如果您更新文本,则它会扩展回正确的全尺寸。为了解决这个问题,如果你将 Text 包装在一个不做任何事情的 GeometryReader 中,就可以解决这个问题。
    猜你喜欢
    • 2019-10-22
    • 2020-05-01
    • 2020-09-22
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多