如何避免底部视图在SwiftUI中覆盖键盘?

yi0zb3m4  于 2023-01-19  发布在  Swift
关注(0)|答案(1)|浏览(153)

我的观点是这样的:

VStack{
        ScrollView {
            ForEach(0..<50) {_ in
                Text("Editor")
            }
            
      
            VStack {
                TextField("My Text Filed, text: $text)
            }
            .frame(minHeight: 200, maxHeight: 200)
            
            .overlay(
                RoundedRectangle(cornerRadius: 6.0)
                    .stroke(.gray, lineWidth: 1.0)
            )
            .padding()
        }
        
        Button("My Button")
            .background(.green)
            .padding()
    }

我的问题是,每当点击文本字段我的按钮来的键盘顶部。我知道这是很酷的功能,并期望查看侧,如果滚动将来到键盘顶部。我想避免这种情况,任何机构可以给予一些解决方案如何避免这种情况。
我希望我的按钮始终位于底部的ScrollView下方,而不是键盘的顶部

4sup72z8

4sup72z81#

请尝试以下代码:

@State private var text = ""
var body: some View {
    ZStack{
        VStack{
            Spacer()
            Button("Button title") {
                print("Button tapped!")
            }
        }
        .ignoresSafeArea(.keyboard)
        ScrollView {
            ForEach(0..<50) {_ in
                Text("Editor")
            }
            VStack {
                TextField("My Text Filed", text: $text)
            }
            .frame(minHeight: 200, maxHeight: 200)
            
            .overlay(
                RoundedRectangle(cornerRadius: 6.0)
                    .stroke(.gray, lineWidth: 1.0)
            )
            .padding()
        }
        .padding(.bottom, 20)
    }
}

相关问题