[iOS] keyBoardWillShow 키보드 높이 에러날 때 해결법
많이 알려진 KeyBoard 이슈 처리
앱에서 키보드를 호출해서 사용하는 경우, 키보드가 UI 위로 올라오면서 뷰의 일부분을 가리게 된다. 그래서 보통 keyBoard 의 height를 구해서 뷰를 keyBoard height 만큼 올려줘서 이걸 해결한다.
많은 자료들이 NotificationCenter 에 keyBoardWillShow 와 keyBoardWillHide 를 등록하고 다음과 같이 키보드 이슈를 처리한다.
bottomSuperView 를 키보드 높이만큼 올리고 싶은 상황
@objc func keyBoardWillShow(_ sender: Notification) { if let keyboardFrame: NSValue = sender.useInfo? [UIResponder.keyboardFrameEndUserInfoKey] as? NSValue { let keybaordRectangle = keyboardFrame.cgRectValue let keyboardHeight = keybaordRectangle.height // [주의] bottomSuperView.frame.origin.y -= keyBoardHeight } }
safeArea 를 고려한 이슈 처리
그런데 노치를 가지고 있는 아이폰 버전일 경우에는 위에 썼던 방법이 정확하게 써먹히지 않는다.. safeArea 를 고려해줘야 되기 때문이다.
위 코드에서 [주의] 라고 표시했던 코드를 이렇게 바꾸면 제대로 키보드 높이를 찾아간다.
bottomSuperView.frame.origin.y -= (keyboardHeight - view.safeAreaInsets.bottom)
Author And Source
이 문제에 관하여([iOS] keyBoardWillShow 키보드 높이 에러날 때 해결법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@heyksw/iOS-keyBoardWillShow-키보드-높이-에러날-때저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)