【问题标题】:How to underline a substring in a Text in SwiftUI?如何在 SwiftUI 中的文本中为子字符串加下划线?
【发布时间】:2020-06-03 19:36:17
【问题描述】:

有没有办法在 Swift UI 中为 Text 视图中的特定子字符串在线下划线?

// Code bellow will underline the ENTIRE string ????
// Any way to underline on a specific substring?
Text("You must be invited by an....")
    .underline()

这是我正在尝试构建的 UI:

【问题讨论】:

    标签: ios swift iphone swiftui


    【解决方案1】:

    Text(..) 视图有一个 + 操作符来组合文本。还没有看到这个魔法是如何工作的,但它确实做得很好。

     Text("Regular text... ")
         + Text("underlined text!")
             .underline()
    

    还有第二种方法是在字符串上使用underlined() 函数:

     Text("Regular text... " + "undelined text!".underlined())
    

    超酷!

    【讨论】:

    • 谢谢!很多帖子说这是不可能的,你需要围绕属性字符串编写包装器。这正是我所需要的。
    • 我在同一行中使用多个这些时遇到问题。我有一个 M1 芯片,但 Xcode 12.4 强制我在 Rosetta 模式(英特尔模式)下运行以使用 SwiftUI。在这种模式下编译器速度较慢,甚至无法预览屏幕。还有underlined()函数不存在?
    【解决方案2】:

    对我有用的是将字符串插值与其他文本对象一起使用。

    例如

    Text("This sentence is not underlined. \(Text("But this sentence is underlined.").underline())")

    使用这种策略,我能够在原始 Text 对象中插入三个不同的带下划线的 Text 对象,而编译器不会抱怨。

    希望这会有所帮助!

    【讨论】:

    • 注意这个答案需要 iOS 14+
    猜你喜欢
    • 2019-03-19
    • 2011-11-17
    • 2019-02-04
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2013-12-30
    • 2012-04-18
    相关资源
    最近更新 更多