gpt4 book ai didi

SwiftUI ScrollView 键盘规避

转载 作者:行者123 更新时间:2023-12-05 03:44:26 25 4
gpt4 key购买 nike

首先。我知道 SwiftUI ScrollView 有局限性。我希望在这里解决这个问题。

我的问题是我有一个聊天框...所以是一个带有 ScrollView 和文本输入的 VStack。我能够让文本输入成为键盘自适应......即当您键入时,它会随着键盘向上移动。

问题是 ScrollView 失去了它的滚动位置。所以,如果你滚动到底部然后激活键盘……你就再也看不到底部了。它几乎就像一个 ZStack。

我想要的是模仿与 WhatsApp 相同的行为,即在键入新消息时保持滚动位置。

我知道 ScrollViewReader 和 scrollTo...在这种情况下这似乎是一种 hack,我希望避免它。如果有的话,也许有与布局相关的修复?

最佳答案

幸运的是,我能够通过将 .keyboardAdaptive() 添加到 ScrollView 文本输入以及从填充更改为偏移来解决这个问题

struct KeyboardAdaptive: ViewModifier {
@State private var keyboardHeight: CGFloat = 0

@State var offset: CGFloat

func body(content: Content) -> some View {
content
.offset(y: -keyboardHeight)
.onReceive(Publishers.keyboardHeight) {
self.keyboardHeight = $0 == 0 ? 0 : $0 - offset
}
}
}

关于SwiftUI ScrollView 键盘规避,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66428889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com