使用键盘和文本视图管理垂直滚动视图

问题描述

我有一个 uiscrollview,其中有多个 uitextviews 作为子视图,就像一个表单。我的目标是让任何 uitextview 点按,出现在键盘上方。

如果我点击一个 uitextview 之前没有点击一个,或者如果我按下返回键将我带到下一个 uitextview,我当前的代码有效。

当我点击一个 uitextview 时,事情变得不稳定,然后一直滚动到底部以激活并点击另一个 uitextviewuiscrollview 不能正确滚动到底部 uitextview,而是滚动到随机位置。关于如何最好地管理这种情况的任何想法?诚然,我不知所措...

@objc func handleKeyboardShow(notification: NSNotification) {
if let userInfo = notification.userInfo {
    var keyboardFrame:CGRect = (userInfo[UIResponder.keyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
    keyboardFrame = self.view.convert(keyboardFrame,from: nil)
    
    var contentInset:UIEdgeInsets = self.scrollView.contentInset
    contentInset.bottom = keyboardFrame.size.height + 20
    scrollView.contentInset = contentInset
}
}

@objc func handleKeyboardHide(notification: NSNotification) {
    let contentInset:UIEdgeInsets = UIEdgeInsets.zero
        scrollView.contentInset = contentInset
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)