From a6ae313f5223bd03dfa017124c2f9123e7d71b0a Mon Sep 17 00:00:00 2001 From: Khoa Pham Date: Wed, 22 Nov 2017 09:54:08 +0100 Subject: [PATCH 1/4] Check for iPhone X --- Source/UIView+Extensions.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/UIView+Extensions.swift b/Source/UIView+Extensions.swift index f68a796..a1c8cad 100644 --- a/Source/UIView+Extensions.swift +++ b/Source/UIView+Extensions.swift @@ -11,4 +11,8 @@ extension UIView { return y } + + var isiPhoneX: Bool { + return safeYCoordinate > 0 + } } From 562a4af48017b9ed058d8abc0b7b5b17e7243700 Mon Sep 17 00:00:00 2001 From: Khoa Pham Date: Wed, 22 Nov 2017 09:54:32 +0100 Subject: [PATCH 2/4] Use correct window level --- Source/WhistleFactory.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/WhistleFactory.swift b/Source/WhistleFactory.swift index 06d49e1..96560cd 100644 --- a/Source/WhistleFactory.swift +++ b/Source/WhistleFactory.swift @@ -97,7 +97,7 @@ open class WhistleFactory: UIViewController { func moveWindowToFront() { let currentStatusBarStyle = UIApplication.shared.statusBarStyle - whistleWindow.windowLevel = UIWindowLevelStatusBar + whistleWindow.windowLevel = view.isiPhoneX ? UIWindowLevelNormal : UIWindowLevelStatusBar UIApplication.shared.setStatusBarStyle(currentStatusBarStyle, animated: false) } From 8e59fdd1df25f3b1668ccfe964e698bcd12ae0c3 Mon Sep 17 00:00:00 2001 From: Khoa Pham Date: Wed, 22 Nov 2017 09:56:41 +0100 Subject: [PATCH 3/4] Correct check for top inset --- Source/UIView+Extensions.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/UIView+Extensions.swift b/Source/UIView+Extensions.swift index a1c8cad..3e38514 100644 --- a/Source/UIView+Extensions.swift +++ b/Source/UIView+Extensions.swift @@ -13,6 +13,6 @@ extension UIView { } var isiPhoneX: Bool { - return safeYCoordinate > 0 + return safeYCoordinate > 20 } } From 63bcdfbb2ec07da6e783173cb95be33d8512b8ec Mon Sep 17 00:00:00 2001 From: Khoa Pham Date: Wed, 22 Nov 2017 10:11:51 +0100 Subject: [PATCH 4/4] Use preferredStatusBarStyle --- Source/WhistleFactory.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Source/WhistleFactory.swift b/Source/WhistleFactory.swift index 96560cd..679ba2b 100644 --- a/Source/WhistleFactory.swift +++ b/Source/WhistleFactory.swift @@ -96,9 +96,12 @@ open class WhistleFactory: UIViewController { } func moveWindowToFront() { - let currentStatusBarStyle = UIApplication.shared.statusBarStyle whistleWindow.windowLevel = view.isiPhoneX ? UIWindowLevelNormal : UIWindowLevelStatusBar - UIApplication.shared.setStatusBarStyle(currentStatusBarStyle, animated: false) + setNeedsStatusBarAppearanceUpdate() + } + + open override var preferredStatusBarStyle: UIStatusBarStyle { + return UIApplication.shared.statusBarStyle } open func setupFrames() {