iOSキーボードの高さを確認したいと思います。 RxSwiftでどうすればいいですか?ここでキーボードの高さを放射するRxSwift Observableを作成する方法は?
0
A
答えて
0
あなたは、キーボードの高さを発するObservable
を構築することができる方法である:https://gist.github.com/laurilehmijoki/193332408964ad53e1cc236387ec6e46
0
あなたは、キーボードの高さにのみ関心がある場合、あなたはUIKeyboardDidChangeFrame
通知
let keyboardHeight = NotificationCenter.default.rx
.notification(NSNotification.Name.UIKeyboardDidChangeFrame)
.map { notification -> CGFloat in
(notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.height ?? 0
}
注意を観察することができます画面の外に出てもキーボードの高さは「フル」のままです。これらの通知は、キーボードの言語の変更や自動補完ボタンの表示/非表示によるフレームの変更にのみ興味があります。
あなたはそれがの画面になったとき、あなたはUIKeyboardWillShow
とUIKeyboardHide
通知に上記観測可能に組み合わせることができ、キーボードのフレームは0であることを考慮知りたい場合。このことから
enum KeyboardState {
case onScreen
case offScreen
}
let keyboardOnScreenHeight = Observable.from([
NotificationCenter.default.rx.notification(NSNotification.Name.UIKeyboardWillShow)
.map { _ in KeyboardState.onScreen }
NotificationCenter.default.rx.notification(NSNotification.Name.UIKeyboardWillHide)
.map { _ in KeyboardState.offScreen }
])
.merge()
.flatMapLatest { state in
switch state {
case .onScreen: keyboardHeight
case .offScreen: .just(0)
}
}
それはそれを終了すると、それは画面上、および0であるとき、あなたはから放出された値は、以前keyboardHeight
を定義しますよ。
関連する問題
- 1. 継続的に放射するRxJava Observableの作成方法は?
- 2. 垂直放射状勾配を作成する方法
- 3. 木の後でObservableの最初の放射を取得する
- 4. ナビゲーションの周りに放射状のグラデーションを作成する方法は?
- 5. gnuplotを使って放射状プロットを作成するには?
- 6. Unityで放射状グラデーションスカイボックスを作る方法は?
- 7. 放射状の勾配半径を作成する200px
- 8. RxJsでObservableからの放射が考えられますか?
- 9. CSS放射状放射バンディング
- 10. 仮想キーボードの高さを確認する方法は?
- 11. RxSwiftでObservableの登録を解除するには?
- 12. Observableをクエリから作成する方法は?
- 13. 100%divの高さを作成する方法は?
- 14. RxSwiftで観測値を作成する
- 15. 内部からObservable outerを作成する方法Observableの入れ子になっているObservableエラーまたは成功を確認するには?
- 16. 通話件名放射
- 17. はvuejsで放射
- 18. Rxswiftを使用してUIImageViewのObservableを取得する方法は空ですか?
- 19. 放射状ツリーレイアウトアルゴリズム
- 20. ObservableからstartWithを使用してObservableを作成する
- 21. RxSwift変数に基づいてObservableを構築する
- 22. キーボードの高さを変更するオブザーバースイフト
- 23. RxJavaで観測可能な放射を遅らせる方法
- 24. CSS3放射グラデーション
- 25. 放射状グラデーションを持つWPF放射状進捗バー
- 26. ObservableのリストからObservableオブジェクトを作成する
- 27. Androidで複数のタブ/セクションのキーボードを作成する方法
- 28. キーボードのテーマを作成するには?
- 29. カイロ放射グラジエント
- 30. CSSの放射グラディエント