出现键盘时滚动到 SwiftUI Scrollview 的最底部
Posted
技术标签:
【中文标题】出现键盘时滚动到 SwiftUI Scrollview 的最底部【英文标题】:Scroll to very bottom of SwiftUI Scrollview when keyboard appears 【发布时间】:2021-02-22 10:21:14 【问题描述】:在我的 SwiftUI 项目中,我有以下布局
ScrollView
VStack
Text("some text that may change while editing the stuff below")
TextField(...)
TextField(...)
Button(...)
我想要实现的是,只要 TextField 获得焦点,ScrollView 就会滚动到最底部,即按钮可见。我尝试使用包装好的UIScrollView
和keyboardWillShow-notifications,但没有找到适用于ios 13 和14 的任何东西。
实现这一目标的最佳方法是什么?
【问题讨论】:
【参考方案1】:你可以通过使用 ScrollViewReader 来实现,如果你不想要 onTapGesture,你可以使用keyboardWillShow-notifications
ScrollView
ScrollViewReader value in
VStack
Text("some text that may change while editing the stuff below").id(0)
TextField(...)
.id(1)
.onTapGesture
withAnimation()
value.scrollTo(3, anchor: .top) //or if you want the button in the center use .center
TextField(...).id(2)
Button(...).id(3)
【讨论】:
以上是关于出现键盘时滚动到 SwiftUI Scrollview 的最底部的主要内容,如果未能解决你的问题,请参考以下文章
如何滚动滚动视图以使 TextField 在 SwiftUI 中移动到键盘上方?