0

我正在为我的应用程序开发一项功能,该功能将允许用户口述将出现在 textField 中的文本。为此,我创建了一个滚动视图,其中只有一个文本字段,其内容会在用户口授时自动更新。但是我遇到了关于滚动视图的自动滚动的问题。因为 textFields 的高度随着新文本的出现而增长,它与滚动视图的高度一样高,这意味着此时 textFields 的高度将继续增长,但用户不会看到任何新文本。

我如何以编程方式确保如果文本字段的高度超出滚动视图,滚动视图将向下滚动以显示新文本?

我已经尝试使用 ScrollViewReader、ScrollViewProxy 和 .onChange 闭包,但它似乎没有任何影响。

ScrollViewReader{proxy in
                        ScrollView(.vertical, showsIndicators: false) {
                            Text(newMessageText)
                            .frame(width: 230, alignment: .center)
                            .font(.system(size: 46))
                            .foregroundColor(.black)
                            .multilineTextAlignment(.leading)
                            .lineLimit(nil)
                            .padding()
                            .id(textViewId)
                        }
                        .onChange(of: newMessageText) { newValue in
                            proxy.scrollTo(textViewId, anchor: .bottom)
                        }
                        }
4

0 回答 0