gpt4 book ai didi

text - SwiftUI 文本对齐对齐

转载 作者:行者123 更新时间:2023-12-03 17:01:27 27 4
gpt4 key购买 nike

有没有人找到一种方法来对齐 Text 中的字符串以合理的方式?

在我的阅读应用程序中,我想让用户选择合理的对齐方式,其中 .leading .trailing对齐同时为真。不幸的是.multilineTextAlignment Text 的修饰符只有三个选项:.leading , .center.trailing .

如果没有,我仍然可以包装一个 UILabelUIViewRepresentableUILabel.justified对齐选项,但我认为它应该在 Text 中可用我也找不到它。

最佳答案

我知道我迟到了,但我遇到了同样的问题,我会写在这里,将来可以帮助其他开发人员
不幸的是,到目前为止,Apple 不支持 .justified在 SwiftUI 2.0 中
你需要依赖 UIKit
将此代码添加到您的项目中

   struct LabelAlignment: UIViewRepresentable {
var text: String
var textAlignmentStyle : TextAlignmentStyle
var width: CGFloat

func makeUIView(context: Context) -> UILabel {
let label = UILabel()
label.textAlignment = NSTextAlignment(rawValue: textAlignmentStyle.rawValue)!
label.numberOfLines = 0
label.preferredMaxLayoutWidth = width
label.setContentHuggingPriority(.required, for: .horizontal)
label.setContentHuggingPriority(.required, for: .vertical)

return label
}

func updateUIView(_ uiView: UILabel, context: Context) {
uiView.text = text
}
}

enum TextAlignmentStyle : Int{
case left = 0 ,center = 1 , right = 2 ,justified = 3 ,natural = 4
}
然后像这样使用它
LabelAlignment(text: "Your text here", textAlignmentStyle: .justified, width: UIScreen.main.bounds.width - 20)
将 20 更改为您喜欢在左侧和右侧添加空格的任何数字
我的解决方案将取决于文本内容大小
如果文本很小, View 就会很小,反之亦然
所以它将充当 Text()

关于text - SwiftUI 文本对齐对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60104922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com