让 TextField 在 SwiftUI 中包裹它的内容

Kon*_*nko 4 ios swift swiftui

我正在尝试实现这样的组件

在此输入图像描述

TextField (5 000) 和 Text (PLN) 一起应水平居中。输入新数字时,文本 (PLN) 应被忽略。我想我必须将这两个视图合并到一个容器中并居中,就像

HStack {
   TextField()
   Text("PLN")
}
.frame(alignment: .center)
Run Code Online (Sandbox Code Playgroud)

但 TextField 占用了所有可能的宽度。

我该如何处理它,或者可能是其他解决方案。

Asp*_*eri 9

这是动态调整大小的可能方法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)