1
처음으로 키보드를 호출하면 코드가 완벽하게 작동하는 것 같습니다. 키보드를 두 번째로 호출하면 프레임 크기가 증가하지 않습니다. 나는 사용자 정의 키보드 높이를 확인하고 그에 따라 높이를 증가프레임 크기 증가 - Keyboardwillshow - Swift
@objc func keyboardWillShow(sender: NSNotification) {
let _: [NSObject : AnyObject] = sender.userInfo! as [NSObject : AnyObject]
let keyboardSize: CGSize = (sender.userInfo?[UIKeyboardFrameBeginUserInfoKey]! as AnyObject).cgRectValue.size
let offset: CGSize = (sender.userInfo?[UIKeyboardFrameEndUserInfoKey]! as AnyObject).cgRectValue.size
if keyboardSize.height == offset.height {
UIView.animate(withDuration: 0.25, delay: 0.0, options: [.allowUserInteraction], animations: {
let frame = self.view.frame
self.view.frame = CGRect(x: 0, y: self.fullView, width: frame.width, height: frame.height)
})
noteDetails.frame.size.height = noteDetails.frame.size.height + keyboardSize.height
} else {
UIView.animate(withDuration: 0.25, delay: 0.0, options: [.allowUserInteraction], animations: {
let frame = self.view.frame
self.view.frame = CGRect(x: 0, y: self.fullView, width: frame.width, height: frame.height)
})
noteDetails.frame.size.height = noteDetails.frame.size.height + keyboardSize.height - offset.height
}
}
@objc func keyboardWillHide(sender: NSNotification) {
let _: [NSObject : AnyObject] = sender.userInfo! as [NSObject : AnyObject]
let keyboardSize: CGSize = (sender.userInfo?[UIKeyboardFrameBeginUserInfoKey]! as AnyObject).cgRectValue.size
noteDetails.frame.size.height = noteDetails.frame.size.height + keyboardSize.height
}
오프셋 추가 된 :
여기 내 코드입니다. 이것이 코드를 충돌시키는 원인이되었습니다. 구체적으로 키보드를 두 번째 호출 할 때 keyboardSize의 높이는 사용자 정의 키보드의 높이 여야합니다. 테이블의 프레임 높이가 키보드의 높이만큼 커지도록 내 코드를 수정하는 방법을 잘 모르겠다.
UIKeyboardFrameBeginUserInfoKey
의 당신은 내 대답을 시도 했습니까? 그것이 작동하는지 궁금해. – Steeve