如何在 SwiftUI 的文本块中嵌入 NavigationLink?
Posted
技术标签:
【中文标题】如何在 SwiftUI 的文本块中嵌入 NavigationLink?【英文标题】:How do I embed a NavigationLink inside a block of text in SwiftUI? 【发布时间】:2019-07-18 02:08:24 【问题描述】:我想让 SwiftUI NavigationLink 与文本块内联显示。我该怎么做?
这是我想要完成的一个示例。我希望条款和条件成为文本的一部分,而不是单独的视图。 Tap to view image.
【问题讨论】:
【参考方案1】:目前,SwiftUI 中没有 NSAttributedString
等价物。
这可能不是您想要的,但使用堆栈可能是实现目标的最佳选择(VStack
或 HStack
,哪个更合适):
HStack
Text("By creating an account, you agree to the")
Button("Terms & Conditions")
// UIApplication.shared.openURL
您可能需要考虑本地化,因为元素的顺序在其他语言中可能不同,可能包括位于句子中间的按钮。不是很有希望。
我没用过,但您可能想研究一下使用UIViewRepresentable
的方法。有了它,您可以对字符串的不同部分应用不同的样式,但不确定是否有任何方法可以附加事件处理程序。
【讨论】:
是的,我可能必须使用 UIViewRepresentable。不过,在 SwiftUI 中这样做会很好。以上是关于如何在 SwiftUI 的文本块中嵌入 NavigationLink?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SwiftUI 中嵌入 ForEach 的 HStack 中设置相对宽度?
SwiftUI - 嵌入 ScrollView 后文本被截断
当嵌入到 SwiftUI 中的 ScrollView 中时,VStack 内的内容会缩小