在iOS中显示键盘时无法滚动到视图底部

时间:2018-12-23 08:02:13

标签: ios objective-c

有一个分段控件,每个控件具有不同的高度。每个字段中都有一些文本字段。当我在文本字段上点击然后在另一段上点击时,在显示键盘时无法滚动到视图底部。
我想用这些无效的代码修复此问题。

if(self.isKeyBoardShowing) {
    CGRect borderLabelRect = containerView.frame;
    self.scrollView.contentSize = CGSizeMake(borderLabelRect.size.width , borderLabelRect.size.height + 325);
    [self.view layoutIfNeeded];
    [self.view layoutSubviews];
}

2 个答案:

答案 0 :(得分:2)

在viewDidLoad中添加观察者

NotificationCenter.default.addObserver(self, selector: #selector(onShowKeyboard), name: NSNotification.Name.UIKeyboardWillShow, object: nil)

并将选择器实现为->

 @objc func onShowKeyboard(_ notification:Notification) {

    if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
        self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, keyboardSize.height, 0)
    }
}

答案 1 :(得分:0)

删除您完成的键盘设置代码。

只需将IQKeyboard Manager粘贴到您的项目中,它将自动滚动。

从下面的链接下载

https://github.com/hackiftekhar/IQKeyboardManager