Мой Scrollview не прокручивается полностью после нажатия на клавиатуру Swift iOS - PullRequest
0 голосов
/ 16 января 2020

У меня есть прокрутка с множеством текстовых полей внутри. Когда я вытяну sh мой вид прокрутки, чтобы клавиатура не скрывала некоторые из подпредставлений, я не могу прокрутить весь экран до самого верха прокрутки. Вот мой код Кто-нибудь может помочь?

constraints of uiscrollview

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
        }
    }
}

1 Ответ

0 голосов
/ 17 января 2020

Вы должны использовать scrollView.contentInset, вы не должны связываться с рамкой просмотра ViewControllers.

Я также рекомендую вам использовать tableView, поскольку это дает вам такое поведение бесплатно.

...