我正在尝试实现这样的组件
TextField (5 000) 和 Text (PLN) 一起应水平居中。输入新数字时,文本 (PLN) 应被忽略。我想我必须将这两个视图合并到一个容器中并居中,就像
HStack {
TextField()
Text("PLN")
}
.frame(alignment: .center)
Run Code Online (Sandbox Code Playgroud)
但 TextField 占用了所有可能的宽度。
我该如何处理它,或者可能是其他解决方案。
这是动态调整大小的可能方法TextField。
注意:助手rectReader取自我的帖子。
使用 Xcode 11.4 / iOS 13.4 进行测试(黑色边框仅用于演示)
struct DemoCenterTextField: View {
@State private var value = ""
@State private var frame = CGRect.zero
var body: some View {
return HStack(alignment: .bottom) {
ZStack {
Text(self.value).foregroundColor(Color.clear)
.fixedSize()
.background(rectReader($frame))
TextField("#.#", text: $value)
.multilineTextAlignment(.trailing)
.frame(minWidth: 80, idealWidth: frame.width)
.fixedSize(horizontal: true, vertical: false)
.border(Color.black) // << for demo only
}.font(Font.system(size: 40).bold())
Text("PLN")
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2600 次 |
| 最近记录: |