has*_*o11 5 text text-alignment swiftui
有没有人找到一种方法以Text合理的方式将字符串对齐?
在我的阅读应用,我想向用户提供选择合理的定位,其中两个在.leading两个.trailing比对是真正的在同一时间。不幸的是, 的.multilineTextAlignment修饰符Text只有三个选项:.leading,.center和.trailing。
如果没有,我仍然可以将 an 包装UILabel到 a 中,UIViewRepresentable因为UILabel有.justified对齐选项,但我认为它也应该在 the 中可用,但我Text找不到它。
我知道我迟到了,但我遇到了同样的问题,我将在这里写下来,它可以帮助其他开发人员将来
不幸的是,到目前为止 Apple 还不支持.justifiedSwiftUI 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
}
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它
LabelAlignment(text: "Your text here", textAlignmentStyle: .justified, width: UIScreen.main.bounds.width - 20)
Run Code Online (Sandbox Code Playgroud)
将 20 更改为您想要在左侧和右侧添加空格的任何数字
我的解决方案将取决于文本内容大小,如果文本很小,视图就会很小,反之亦然,因此它将充当 Text()
| 归档时间: |
|
| 查看次数: |
502 次 |
| 最近记录: |