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

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

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

【问题讨论】:

  • 将 UILabel 与 UIViewRepresentable 一起使用

标签: swiftui text-alignment


【解决方案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)
    }
}

【讨论】:

    猜你喜欢
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多