Last active
November 28, 2018 09:33
-
-
Save Anatoli-Petrosyants/9a91504fbcb66829068ac45d7e71b9af to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import RxSwift | |
import RxCocoa | |
func keyboardHeight() -> Observable<CGFloat> { | |
return Observable | |
.from([ | |
NotificationCenter.default.rx.notification(NSNotification.Name.UIKeyboardWillShow) | |
.map { notification -> CGFloat in | |
(notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue.height ?? 0 | |
}, | |
NotificationCenter.default.rx.notification(NSNotification.Name.UIKeyboardWillHide) | |
.map { _ -> CGFloat in | |
0 | |
} | |
]) | |
.merge() | |
} | |
// usage | |
keyboardHeight() | |
.observeOn(MainScheduler.instance) | |
.subscribe(onNext: { (keyboardHeight): CGFloat in | |
// adjust other views with keyboardHeight | |
}) | |
.addDisposableTo(disposeBag) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment