From 9c72dc341711e35ea13af28189b78166df1e705b Mon Sep 17 00:00:00 2001 From: yongseongkim Date: Tue, 25 May 2021 00:08:43 +0900 Subject: [PATCH] Use intersection instead of origin for calculating visible height. --- Sources/RxKeyboard/RxKeyboard.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/RxKeyboard/RxKeyboard.swift b/Sources/RxKeyboard/RxKeyboard.swift index b59ce21..9e10f2d 100644 --- a/Sources/RxKeyboard/RxKeyboard.swift +++ b/Sources/RxKeyboard/RxKeyboard.swift @@ -63,7 +63,7 @@ public class RxKeyboard: NSObject, RxKeyboardType { ) let frameVariable = BehaviorRelay(value: defaultFrame) self.frame = frameVariable.asDriver().distinctUntilChanged() - self.visibleHeight = self.frame.map { UIScreen.main.bounds.height - $0.origin.y } + self.visibleHeight = self.frame.map { UIScreen.main.bounds.intersection($0).height } self.willShowVisibleHeight = self.visibleHeight .scan((visibleHeight: 0, isShowing: false)) { lastState, newVisibleHeight in return (visibleHeight: newVisibleHeight, isShowing: lastState.visibleHeight == 0 && newVisibleHeight > 0)