RxSwift를 이용하면 Notificationcenter 또한 쉽게 이용할 수 있다.
private let keyboardWillShow = NotificationCenter.default.rx.notification(UIResponder.keyboardWillShowNotification)
이로써 우리는 이제 keyboardWillShowNotification의 상태를 keyboardWillShow로 관찰 할 수 있게 되었다.
keyboardWillShow
.compactMap { $0.userInfo }
.map { userInfo -> CGFloat in
return (userInfo[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.height ?? 0
}
.subscribe(onNext: {[weak self] height in
self?.writingView.photoCollectionView.snp.updateConstraints {
$0.bottom.equalToSuperview().offset(-height-10)
}
})
.disposed(by: disposeBag)
구독을 해준 뒤 뷰 업데이트 해주면 끝!
Rx ㅊㅔ고!