https://github.com/RxSwiftCommunity/RxKeyboard
RxSwiftCommunity/RxKeyboard
Reactive Keyboard in iOS. Contribute to RxSwiftCommunity/RxKeyboard development by creating an account on GitHub.
github.com
여러 공부에 심취해 오랜만에 포스팅하네요. 매번 keyboard notification 구현과 거기에 맞춰서 뷰의 위치를 조절해줘야 하는 귀찮음을 덜어주기 위한! 또 Rx를 이용하는! 야심작! RxKeyboard입니다:) 얼마나 반가운지요...
1. 세 가지 Driver
RxKeyboard에는 세 가지 드라이버가 있다고 합니다.
1) 단순히 키보드의 프레임을 방출하는 frame (당연히 CGRect)
2) 키보드가 보일 때는 키보드의 높이를 보이지 않을 때는 0을 방출하는 visibleHeight (요건 CGFloat)
3) 2번과 비슷하지만 키보드가 보일 때만 키보드의 높이를 방출하는 willShowVisibleHeight (요것도 CGFloat)
3번은 스크롤뷰에 적절하게 사용하면 아주 유용하다고 합니다!
각 드라이버는 상황에 맞게 사용하시면 되는데, 저는 3번을 적용해서 만들어보겠습니다.
2. 프로젝트에 적용해 보기!
1) 먼저 import를 해주시구요!
2) 위 이미지처럼 RxKeyboard에 접근합니다. instance를 통해 객체에 접근해서 관련한 세 가지 Driver를 사용할 수 있습니다. 저는 3번을 하기로 했기 때문에 willShowVisibleHeight로 구현했습니다. 테스트를 한 번 해볼까요?
올렸을 때는 260으로 내렸을 때는 따로 출력되지 않네요! 그리고 숫자 키보드 높이도 다르게 입력되는걸 볼 수 있습니다:) 그럼 이제 실제로 프로젝트에 적용해 보겠습니다!
3) 제가 선택한 드라이버는 스크롤뷰에 유용하고 특별히 여러개의 텍스트 필드가 있는 경우에 각각에 반응하도록 되어 있어서 정말 유용합니다! 위처럼 스크롤뷰의 contentInset의 bottom에 접근하셔서 키보드 높이만큼 띄워줍니다. 결과는?
정상적으로 작동합니다! 자세한 구현은 뜯어봐야 겠지만 일단 급하게 keyboard 높이를 동적으로 구현하고 싶으시다면, 이 라이브러리를 쓰시는걸 적극 추천합니다:) 구현 자체가 너무 쉬워서 소스코드는 필요없을 것 같아서 제외합니다 ㅎㅎ
오늘은 여기까지하고 또 올리겠습니당!
'RxSwift' 카테고리의 다른 글
[RxSwift Community] RxFlow 사용하기 2 (0) | 2021.06.18 |
---|---|
[RxSwift Community] RxFlow 사용하기 1 (0) | 2021.06.17 |
[RxSwift Community] RxFlow 사용하기 전에... (0) | 2021.06.11 |
[RxSwift Community] NSObject+Rx 사용하기 (0) | 2021.06.07 |
[RxSwift Community] RxDataSources Animatable편 (0) | 2021.06.04 |
댓글