Programming

iOS 키보드 높이에 따른 view 수정

 2016. 12. 27. 16:35
반응형

앱에서 무언가 글을 작성해야할 때 키보드가 필요하게 된다.

PC 처럼 물리적으로 키보드가 분리되어 있는 경우는 상관 없지만, 

화면의 절반 정도를 가려버리는 키보드이기 때문에 

키보드 관련된 처리를 자주 해줘야하는 경우가 발생한다. 

자주 사용되는 기능이기 때문에 일정한 패턴이 존재한다.


#1 키보드 높이를 가져온다.

키보드의 높이를 가져와서 가져진 부분만큼 constraints, offset, inset 등을 조절할 것이기 때문에

키보드 높이를 가져온다.


#2 키보드 변경된 높이를 가져온다.

변경된 높이를 가져오려는 이유는, 한글 -> 이모지 키보드 처럼 키보드 전환이 가능하기 때문이다.

키보드가 변경되었을 때 그에 맞춰서 조금 더 값을 수정해줘야하는 경우가 있다.


#3 애니메이션 값을 가져온다. 

키보드가 올라가는 속도를 가져와야

화면도 함께 같은 속도로 조절할 수 있다.


#4 블루투스 키보드인 경우 무시한다.

블루투스 키보드인 경우 실제로 화면에 등장하지 않았지만

notification 으로 감지되는 경우가 있기 때문에 무시해줘야 한다.

이 때문에 현재 화면 크기와 비교해서 키보드 높이를 계산하는 것이 불가피할 수도 있다. 


#5 아이폰X 대응

아이폰X 의 경우 화면 높이에서 키보드 높이를 빼게 되면

하단에 홈 버튼 영역 까지도 키보드 높이로 계산하게 된다.

하단 영역까지도 필요로하는 경우가 있을지도 모르겠지만,

일단은 순수하게 키보드 영역만 가져오는 것이 좋다고 생각된다.

반응형