From d560c8661a6be7365e70b450687a0dbc56cfe971 Mon Sep 17 00:00:00 2001 From: Ilya Grechuhin Date: Wed, 10 Jan 2018 16:33:51 +0300 Subject: [PATCH] [iphonex] [ios] Fixed available area estimation. --- .../Maps/UI/AvailableArea/AvailableArea.swift | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/iphone/Maps/UI/AvailableArea/AvailableArea.swift b/iphone/Maps/UI/AvailableArea/AvailableArea.swift index 506b2606b8..d2ab54aaaa 100644 --- a/iphone/Maps/UI/AvailableArea/AvailableArea.swift +++ b/iphone/Maps/UI/AvailableArea/AvailableArea.swift @@ -5,25 +5,32 @@ class AvailableArea: UIView { var deferNotification: Bool { return true } - private var orientation = UIDeviceOrientation.unknown { + private(set) var orientation = UIDeviceOrientation.unknown { didSet { scheduleNotification() } } + + var shouldUpdateAreaFrame: Bool { + if #available(iOS 11.0, *), let insets = UIApplication.shared.delegate?.window??.safeAreaInsets { + return insets.top > 0 || insets.left > 0 || insets.bottom > 0 || insets.right > 0 + } else { + return false + } + } + var areaFrame: CGRect { return alternative(iPhone: { var frame = self.frame - if #available(iOS 11.0, *), let insets = UIApplication.shared.delegate?.window??.safeAreaInsets { - if insets.top > 0 || insets.left > 0 || insets.bottom > 0 || insets.right > 0 { - switch self.orientation { - case .landscapeLeft: - frame.origin.x -= 24 - frame.size.width += 68 - case .landscapeRight: - frame.origin.x -= 44 - frame.size.width += 60 - default: break - } + if self.shouldUpdateAreaFrame { + switch self.orientation { + case .landscapeLeft: + frame.origin.x -= 16 + frame.size.width += 60 + case .landscapeRight: + frame.origin.x -= 44 + frame.size.width += 60 + default: break } } return frame