keyboardWillShow 上的滚动视图内容插入问题
Scroll view content inset issue on keyboardWillShow
我已经按照代码调整滚动视图插图。滚动视图中的内容低于键盘限制,如屏幕录制所示 - https://imgur.com/a/XWfiVYX
如何解决这个问题,使 bottomView 的底部贴在键盘的顶部并且不会向上或向下滚动?
@objc func keyboardWillShow(notification:NSNotification) {
let userInfo = notification.userInfo!
let keyboardFrame:CGRect = (userInfo[UIResponder.keyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
let kbSize = keyboardFrame.size
let contentInset:UIEdgeInsets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: kbSize.height, right: 0.0)
scrollView.contentInset = contentInset
scrollView.scrollIndicatorInsets = contentInset
}
使用 scrollView.contentInset 不会修复您在 kb 以上的视图,它会像您在您的案例中看到的那样上下滚动。此解决方案来自 Apple 的代码,它可以很好地仅在 kb 以上显示 textView,并且不会将文本视图的底部粘在 kb 以上。
您需要将整个 self.view 上移 kb 高度。
我已经按照代码调整滚动视图插图。滚动视图中的内容低于键盘限制,如屏幕录制所示 - https://imgur.com/a/XWfiVYX
如何解决这个问题,使 bottomView 的底部贴在键盘的顶部并且不会向上或向下滚动?
@objc func keyboardWillShow(notification:NSNotification) {
let userInfo = notification.userInfo!
let keyboardFrame:CGRect = (userInfo[UIResponder.keyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
let kbSize = keyboardFrame.size
let contentInset:UIEdgeInsets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: kbSize.height, right: 0.0)
scrollView.contentInset = contentInset
scrollView.scrollIndicatorInsets = contentInset
}
使用 scrollView.contentInset 不会修复您在 kb 以上的视图,它会像您在您的案例中看到的那样上下滚动。此解决方案来自 Apple 的代码,它可以很好地仅在 kb 以上显示 textView,并且不会将文本视图的底部粘在 kb 以上。
您需要将整个 self.view 上移 kb 高度。