키보드가 첫 번째 응답자를 얻은 요소를 다룰 때보기를 이동하는 문제를 처리하고 있습니다. 나는 this question을보고 시작했고 나에게 커다란 시작을주었습니다. UIKeyboardWillShow
나는 다음과 같은 코드로 종료 UIKeyboardWillHide
에 관찰자를 추가 한 후 :키보드가 나타날 때 UIView 관리
func keyboardWillShow(notification: Notification) {
guard let userInfo = notification.userInfo,
let kbRect = userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue,
let duration = userInfo[UIKeyboardAnimationDurationUserInfoKey] as? Double else {
return
}
let kbSize = kbRect.cgRectValue.size
UIView.animate(withDuration: duration) {
self.view.transform = CGAffineTransform(translationX: 0, y: -kbSize.height)
}
}
func keyboardWillHide(notification: Notification) {
UIView.animate(withDuration: 0.3) {
self.view.transform = CGAffineTransform(translationX: 0, y: 0)
}
}
뷰가 아래로 이동하고 있다는 그것은 의미에서 잘 작동 할 때 텍스트 필드가 이익 최초의 응답을. 그러나 키를 누르면 뷰가 다시 움직이며 첫 번째 위치에서 뷰를 위로 이동하는 목적을 상실합니다. 키보드가 처음 나타나고 사라질 때 잘못된 동작을보다 잘 설명하기 위해 약간의 GIF를 만들었습니다. 두 번째로 키를 누르면 원하지 않는 동작이 표시됩니다.
그래서, 질문은, 키를 누를 때 뷰의 움직임을 방지 할 수있는 방법은 무엇입니까? 사용자가 키보드를 사용하여 텍스트를 삽입 할 때 뷰를 "위로"유지하고 싶습니다.
당신은보기 응용 프로그램을 이동해야
어떻게이 이미지를 설정 했습니까? 거기에는 어떤 제약이 있습니까? –
@Lu_ 모든보기에서 저에게 일어납니다. 그 이미지는 단지 UIView였습니다. 문제점을 설명하기 위해 했었습니다. 이미지의 제약 조건은 맨 위, 맨 위 및 맨 아래로 슈퍼 뷰, 맨 아래의 텍스트 필드, 모두 8 개의 값으로 구성됩니다. –