gpt4 book ai didi

ios - UIScrollView: View 不会自动滚动

转载 作者:行者123 更新时间:2023-11-30 10:52:15 27 4
gpt4 key购买 nike

我是 Swift/iOS 的新手,我正在制作一个简单的应用程序来跟踪我家里的药柜。我在管理用于文本输入的屏幕键盘时遇到问题。

该应用程序基本上是一个包含数据条目的表格 View ,当按下其中一个时,您将进入包含一些详细信息的详细 View 。

在此详细 View 中,我有一个 UIScrollView,它被限制为等于安全区域,其中有一个名为“Container View”的 UIView,其大小与 Scrollview 相同,并且在该 View 内还有一个 View 来组成使用自动布局的屏幕(没有警告)。

在这些 subview 之一中有一个 UITextField,我用它来收集用户通过屏幕键盘输入的注释。

我添加了一些代码来管理屏幕键盘,在 View 底部插图显示时调整它以防止键盘隐藏文本字段,并在键盘消失时删除该插图。

我最终得到了以下代码,这是我从 hackingwithswift.com 获得的(并且属性观察器设置为正确调用此函数,我已确认该函数正在工作):

func adjustInsetForKeyboardShowHide(notification: Notification) {

let userInfo = notification.userInfo!

let keyboardScreenEndFrame = (userInfo[UIResponder.keyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
let keyboardViewEndFrame = view.convert(keyboardScreenEndFrame, from: view.window)

if notification.name == UIResponder.keyboardWillHideNotification {
scrollView.contentInset = UIEdgeInsets.zero
} else {
scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: keyboardViewEndFrame.height, right: 0)
}

scrollView.scrollIndicatorInsets = scrollView.contentInset

}

但是,即使当键盘出现在屏幕上时正确调用该函数, View 也不会滚动。我不确定问题是出在这里还是 IB 的某个地方......

令我印象深刻的是,我可以在键盘出现在屏幕上后手动向下滚动到正确的数量,但它只是不会像我希望的那样自动滚动。正如预期的那样,当屏幕键盘未显示时, View 不会滚动,因此显然调整功能工作正常,只是不会自行滚动。

当键盘消失时, View 再次重新调整为正常,因此该部分工作正常。

有什么想法吗?

非常感谢!

最佳答案

在scrollView中你必须设置内容偏移量。因此,在您的情况下,您必须这样做:

if notification.name == UIResponder.keyboardWillHideNotification {
scrollView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
} else {
scrollView.setContentOffset(CGPoint(x: 0, y: keyboardViewEndFrame.size.height), animated: true)
}

关于ios - UIScrollView: View 不会自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54331667/

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