微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用键盘和文本视图管理垂直滚动视图

我有一个 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 举报,一经查实,本站将立刻删除。