![](/img/trans.png)
[英]Move TextField up when the keyboard has appeared in horizontal ScrollView that is inside vertical ScrollView SwiftUI
[英]How to scroll scrollView so that TextField move above Keyboard in SwiftUI?
我已经设置了一个 UI,其中ScrollView
有 6 个字段,如下所示:
...
ScrollView {
IndicatorTextField(
index: 0,
hint: "Full Name",
icon: .imageUserBlue,
activeFieldTag: self.$activeFieldTag,
type: .alphabet
).padding(.top, 48)
IndicatorTextField(
index: 1,
hint: "Email Address",
icon: .imageEmail,
activeFieldTag: self.$activeFieldTag,
type: .emailAddress
).padding(.top, 8)
IndicatorTextField(
index: 2,
hint: "Home Town",
icon: .imageLocation,
activeFieldTag: self.$activeFieldTag,
type: .alphabet
).padding(.top, 8)
IndicatorTextField(
index: 3,
hint: "Password",
icon: .imageLock,
activeFieldTag: self.$activeFieldTag,
indicatorColor: .reddishPink
).padding(.top, 8)
IndicatorTextField(
index: 4,
hint: "Date of Birth",
icon: .imageCalender,
activeFieldTag: self.$activeFieldTag,
type: .numbersAndPunctuation,
indicatorColor: .reddishPink
).padding(.top, 8)
IndicatorTextField(
index: 5,
hint: "Gender",
icon: .imageUserRed,
activeFieldTag: self.$activeFieldTag,
indicatorColor: .reddishPink,
returnKey: .default
).padding(.top, 8)
Spacer()
.frame(width: 0, height: -keyboardObserver.lastViewAdjustment)
}
.background(GeometryGetter(rect: $keyboardObserver.lastViewRect))
...
这是键盘观察者
当键盘出现时,我只需将Spacer
高度更改为足以滚动到最后一个字段。
现在,我想自动滚动键盘上方的 firstResponder。
有谁知道如何使用SwiftUI代码滚动ScrollView
?
到目前为止,我还没有找到在 SwiftUI 中滚动ScrollView
的方法,但我使用了一种解决方法,我告诉父滚动视图从UITextField
的包装器滚动: https : //lostmoa.com/blog/ScrollTextFieldIntoVisibleRange/
我发现它比包装UIScrollView
更简单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.