【问题标题】:My Scrollview doesn't scroll all the way up after pushing up the keyboard Swift iOS向上推键盘 Swift iOS 后,我的 Scrollview 不会一直向上滚动
【发布时间】:2020-01-16 20:17:53
【问题描述】:

我有一个滚动视图,里面有很多文本字段。当我向上推滚动视图以使键盘不隐藏某些子视图时,我无法一直滚动到滚动视图的顶部。这是我的代码。任何人都可以帮忙吗?

class IncomingPackageViewController: UIViewController{
    override func viewDidLoad() {
        super.viewDidLoad()
        NotificationCenter.default.addObserver(self,selector:#selector(self.keyboardWillShow),name:UIResponder.keyboardDidShowNotification, object: nil)
        NotificationCenter.default.addObserver(self,selector: #selector(self.keyboardWillHide),name:UIResponder.keyboardDidHideNotification, object: nil)

    }

    @objc func keyboardWillShow(notification: Notification) {
        guard let userInfo = notification.userInfo,
            let frame = (userInfo[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue else {return}
        let contentInset = UIEdgeInsets(top: 0, left: 0, bottom: frame.height, right: 0)
        if self.view.frame.origin.y == 0 {
            self.view.frame.origin.y -= contentInset.bottom
        }
    }

    @objc func keyboardWillHide(notification: Notification) {
        if self.view.frame.origin.y != 0 {
            self.view.frame.origin.y = 0
        }
    }
}

【问题讨论】:

  • 你真的应该使用Auto Layout而不是静态帧
  • 您也可以尝试使用keyboardDidShow 通知,因为此通知是在键盘出现后发出的。

标签: ios swift uiscrollview keyboard


【解决方案1】:

你应该使用scrollView.contentInset,你不应该弄乱 ViewControllers 视图框架。

我还建议您使用tableView,因为它可以免费为您提供这种行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 2014-11-23
    • 2023-03-05
    相关资源
    最近更新 更多