Ich nehme gerade diesen Kurs über Bildlauf von raywendlich. Es gibt eine Lektion darüber, wie dem Benachrichtigungscenter Beobachter hinzugefügt werden, um zu verfolgen, wann das keyBoard angezeigt wird. So sieht der Code aus.Tastatur mit Bildlaufansicht verwalten
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(notification:)), name: .UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(notification:)), name: .UIKeyboardWillHide, object: nil)
func keyboardWillHide(notification: Notification) {
adjustKeyboardInset(false, notification: notification)
}
func keyboardWillShow(notification: Notification) {
adjustKeyboardInset(true, notification: notification)
}
func adjustKeyboard(isShown: Bool, notification: Notification) {
let userInfo = notification.userInfo ?? [:]
let keyboardFrame = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).cgRectValue
let adjustedHeight = keyboardFrame.height * (isShown ? 1 : -1) + 20
mySV.contentInset.bottom += adjustedHeight
mySV.scrollIndicatorInsets.bottom += adjustedHeight
}
Dies funktioniert korrekt, wenn das Textfeld zum ersten Mal angeklickt wird. Wenn Sie jedoch auf das Textfeld klicken, fügt es immer wieder Speicherplatz hinzu.
Würde mich über jede Hilfe freuen. :)