SwiftUI:对齐文本

Posted

技术标签:

【中文标题】SwiftUI:对齐文本【英文标题】:SwiftUI: Justify Text 【发布时间】:2020-07-24 13:57:23 【问题描述】:

在 UIKit 中,可以选择对齐文本,使其看起来像在报纸上。但是我在 Textelement 的 SwiftUI 中找不到这个选项。我只发现与 .trailing、.leading、.center 的多行对齐。

有人能指出正确的方向吗?

【问题讨论】:

将 UILabel 与 UIViewRepresentable 一起使用 【参考方案1】:

SwiftUI 尚不支持对齐文本,因此您必须使用 UIViewRepresentable 包装 UIKit 视图。因此,对于合理的文本,您可以换行 UITextView。它看起来像这样:

struct TextView: UIViewRepresentable 
    var text: String
    
    func makeUIView(context: Context) -> UITextView 
        let textView = UITextView()
        textView.font = UIFont.preferredFont(forTextStyle: UIFont.TextStyle.body)
        textView.textAlignment = .justified
        return textView
    
    
    func updateUIView(_ uiView: UITextView, context: Context) 
        uiView.text = text
    

从这里,您可以像这样在视图中使用它:

struct MyView: View 
    var body: some View 
        TextView(text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin quis elementum lorem. Nullam fermentum viverra ipsum a finibus. Vestibulum venenatis risus vel leo sagittis, id aliquet tortor elementum. Aenean elementum orci ac sapien dictum laoreet. Sed placerat, magna sit amet eleifend auctor, odio ligula dapibus lacus, quis interdum ligula velit at est. Curabitur molestie dui sodales faucibus cursus. Duis posuere ex diam, tempor tincidunt nunc venenatis vitae. Integer vulputate odio vitae enim tincidunt, eget vulputate arcu pulvinar. Integer in magna erat.")
        .frame(width: 500, height: 300)
    

【讨论】:

以上是关于SwiftUI:对齐文本的主要内容,如果未能解决你的问题,请参考以下文章

ScrollView 文本对齐 SwiftUI

SwiftUI - 在 VStack 中对齐文本

SwiftUI:底部对齐不同帧大小的文本和图像

SwiftUI - 如何将文本视图与另一个文本视图垂直对齐,以制作类似于正确对齐的表格?

如何使 SwiftUI 文本多行文本对齐从顶部和中心开始

SwiftUI 标签文本和图像垂直未对齐