【发布时间】:2020-04-08 18:01:40
【问题描述】:
我添加了scrollView 上、左、右、下0。在scrollView 中我添加了高度为550 的viewinScrollview,在这个视图中我添加了fieldsContainerView。如下所示
如果我在 iPhone8 中运行项目,那么设计看起来不错,但如果我在 iPhone 11 pro 中运行,我会看到不必要的 scrollview。我给scrollview 颜色是绿色,viewinScrollview 颜色是白色。
在 iPhone 11 pro 中我得到如下所示,绿色空间是滚动视图,我不想要键盘后的那个空间 iPhone 11 pro
这是 iPhone8 模拟器 iPhone8 我在所有 iPhone 尺寸都需要这样。
代码如下:
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(keyboardDidShow), name: UIResponder.keyboardDidShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardDidHide), name: UIResponder.keyboardDidHideNotification, object: nil)
}
@objc func keyboardDidShow(notification: NSNotification) {
let info = notification.userInfo
let keyBoardSize = info![UIResponder.keyboardFrameEndUserInfoKey] as! CGRect
scrolView.contentInset = UIEdgeInsets(top: 0.0, left: 0.0, bottom: keyBoardSize.height, right: 0.0)
scrolView.scrollIndicatorInsets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: keyBoardSize.height, right: 0.0)
}
@objc func keyboardDidHide(notification: NSNotification) {
scrolView.contentInset = UIEdgeInsets.zero
scrolView.scrollIndicatorInsets = UIEdgeInsets.zero
}
请帮我删除所有 iPhone 尺寸的绿色空间。
【问题讨论】:
-
尝试从 keyBoardSize.height 中减去
view.safeAreaInsets.bottom。
标签: ios swift keyboard uitextfield scrollviewer