diff --git a/iphone/DatePicker/DatePicker/Cells/RangeFirstCell.swift b/iphone/DatePicker/DatePicker/Cells/RangeFirstCell.swift index 02cede60e1..be85de66c4 100644 --- a/iphone/DatePicker/DatePicker/Cells/RangeFirstCell.swift +++ b/iphone/DatePicker/DatePicker/Cells/RangeFirstCell.swift @@ -7,6 +7,9 @@ final class RangeFirstCell: Cell { contentView.addSubview(rangeBgView) rangeBgView.alignToSuperview(UIEdgeInsets(top: 4, left: 4, bottom: -4, right: 0)) rangeBgView.layer.cornerRadius = 8 + if #available(iOS 13.0, *) { + rangeBgView.layer.cornerCurve = .continuous + } rangeBgView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMinXMaxYCorner] super.addSubviews() } diff --git a/iphone/DatePicker/DatePicker/Cells/RangeLastCell.swift b/iphone/DatePicker/DatePicker/Cells/RangeLastCell.swift index 856298fab3..5aa7d902d2 100644 --- a/iphone/DatePicker/DatePicker/Cells/RangeLastCell.swift +++ b/iphone/DatePicker/DatePicker/Cells/RangeLastCell.swift @@ -7,6 +7,9 @@ final class RangeLastCell: Cell { contentView.addSubview(rangeBgView) rangeBgView.alignToSuperview(UIEdgeInsets(top: 4, left: 0, bottom: -4, right: -4)) rangeBgView.layer.cornerRadius = 8 + if #available(iOS 13.0, *) { + rangeBgView.layer.cornerCurve = .continuous + } rangeBgView.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMaxXMaxYCorner] super.addSubviews() } diff --git a/iphone/DatePicker/DatePicker/Cells/RangeSingleCell.swift b/iphone/DatePicker/DatePicker/Cells/RangeSingleCell.swift index 8055bb9000..f36ecc46a5 100644 --- a/iphone/DatePicker/DatePicker/Cells/RangeSingleCell.swift +++ b/iphone/DatePicker/DatePicker/Cells/RangeSingleCell.swift @@ -7,6 +7,9 @@ final class RangeSingleCell: Cell { contentView.addSubview(rangeBgView) rangeBgView.alignToSuperview(UIEdgeInsets(top: 4, left: 4, bottom: -4, right: -4)) rangeBgView.layer.cornerRadius = 8 + if #available(iOS 13.0, *) { + rangeBgView.layer.cornerCurve = .continuous + } super.addSubviews() } diff --git a/iphone/DatePicker/DatePicker/Cells/SelectedSingleCell.swift b/iphone/DatePicker/DatePicker/Cells/SelectedSingleCell.swift index 332579455e..332c7fe454 100644 --- a/iphone/DatePicker/DatePicker/Cells/SelectedSingleCell.swift +++ b/iphone/DatePicker/DatePicker/Cells/SelectedSingleCell.swift @@ -7,6 +7,9 @@ class SelectedSingleCell: Cell { contentView.addSubview(selectedBgView) selectedBgView.alignToSuperview(UIEdgeInsets(top: 4, left: 4, bottom: -4, right: -4)) selectedBgView.layer.cornerRadius = 8 + if #available(iOS 13.0, *) { + selectedBgView.layer.cornerCurve = .continuous + } super.addSubviews() } diff --git a/iphone/Maps/Categories/UIView+Snapshot.swift b/iphone/Maps/Categories/UIView+Snapshot.swift index c5d5590e37..f983e08e65 100644 --- a/iphone/Maps/Categories/UIView+Snapshot.swift +++ b/iphone/Maps/Categories/UIView+Snapshot.swift @@ -13,7 +13,7 @@ extension UIView { snapshot.layer.contents = contents snapshot.layer.bounds = layer.bounds } - snapshot.layer.cornerRadius = layer.cornerRadius + snapshot.layer.setCorner(radius: layer.cornerRadius) snapshot.layer.masksToBounds = layer.masksToBounds snapshot.contentMode = contentMode snapshot.transform = transform diff --git a/iphone/Maps/Classes/Components/Modal/AlertPresentationController.swift b/iphone/Maps/Classes/Components/Modal/AlertPresentationController.swift index bc3cf43e4c..f870fac3fb 100644 --- a/iphone/Maps/Classes/Components/Modal/AlertPresentationController.swift +++ b/iphone/Maps/Classes/Components/Modal/AlertPresentationController.swift @@ -8,7 +8,7 @@ final class AlertPresentationController: DimmedModalPresentationController { override func presentationTransitionWillBegin() { super.presentationTransitionWillBegin() - presentedViewController.view.layer.cornerRadius = 12 + presentedViewController.view.layer.setCorner(radius: 12) presentedViewController.view.clipsToBounds = true guard let containerView = containerView, let presentedView = presentedView else { return } containerView.addSubview(presentedView) diff --git a/iphone/Maps/Classes/Components/Modal/IPadModalPresentationController.swift b/iphone/Maps/Classes/Components/Modal/IPadModalPresentationController.swift index f4ec04d1af..2aec213d36 100644 --- a/iphone/Maps/Classes/Components/Modal/IPadModalPresentationController.swift +++ b/iphone/Maps/Classes/Components/Modal/IPadModalPresentationController.swift @@ -17,7 +17,7 @@ override var frameOfPresentedViewInContainerView: CGRect { override func presentationTransitionWillBegin() { super.presentationTransitionWillBegin() - presentedViewController.view.layer.cornerRadius = 8 + presentedViewController.view.layer.setCorner(radius: 8) presentedViewController.view.clipsToBounds = true guard let containerView = containerView, let presentedView = presentedView else { return } containerView.addSubview(presentedView) diff --git a/iphone/Maps/Classes/Components/Modal/PromoBookingPresentationController.swift b/iphone/Maps/Classes/Components/Modal/PromoBookingPresentationController.swift index be03b9d35d..11c004fa58 100644 --- a/iphone/Maps/Classes/Components/Modal/PromoBookingPresentationController.swift +++ b/iphone/Maps/Classes/Components/Modal/PromoBookingPresentationController.swift @@ -16,7 +16,7 @@ final class PromoBookingPresentationController: DimmedModalPresentationControlle override func presentationTransitionWillBegin() { super.presentationTransitionWillBegin() - presentedViewController.view.layer.cornerRadius = 8 + presentedViewController.view.layer.setCorner(radius: 8) presentedViewController.view.clipsToBounds = true guard let containerView = containerView, let presentedView = presentedView else { return } containerView.addSubview(presentedView) diff --git a/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift b/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift index d1cb6eaa0c..641deca7d3 100644 --- a/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift +++ b/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift @@ -13,7 +13,7 @@ final class Toast: NSObject { } private init(_ text: String) { - blurView.layer.cornerRadius = 8 + blurView.layer.setCorner(radius: 8) blurView.clipsToBounds = true blurView.alpha = 0 diff --git a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationInfoView.mm b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationInfoView.mm index 3267231bc1..fc3b4c1573 100644 --- a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationInfoView.mm +++ b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationInfoView.mm @@ -365,6 +365,9 @@ BOOL defaultOrientation(CGSize const &size) { (defaultOrientation(availableArea.size) ? kSearchButtonsViewHeightPortrait : kSearchButtonsViewHeightLandscape) / 2; + if (@available(iOS 13.0, *)) { + self.searchButtonsView.layer.cornerCurve = kCACornerCurveContinuous; + } self.streetNameTopOffsetConstraint.constant = self.additionalStreetNameTopOffset; }]; }); diff --git a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportRuler.swift b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportRuler.swift index 988a697860..782aa4aa72 100644 --- a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportRuler.swift +++ b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportRuler.swift @@ -10,7 +10,7 @@ final class TransportRuler: TransportTransitCell { @IBOutlet private weak var background: UIView! { didSet { - background.layer.cornerRadius = Config.backgroundCornerRadius + background.layer.setCorner(radius: Config.backgroundCornerRadius) background.backgroundColor = Config.backgroundColor } } diff --git a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportTransitPedestrian.swift b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportTransitPedestrian.swift index fc339d8bb8..8def0c0d9c 100644 --- a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportTransitPedestrian.swift +++ b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportTransitPedestrian.swift @@ -7,7 +7,7 @@ final class TransportTransitPedestrian: TransportTransitCell { @IBOutlet private weak var background: UIView! { didSet { - background.layer.cornerRadius = Config.backgroundCornerRadius + background.layer.setCorner(radius: Config.backgroundCornerRadius) background.backgroundColor = Config.backgroundColor } } diff --git a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportTransitTrain.swift b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportTransitTrain.swift index d6f7f5c628..c04e96a710 100644 --- a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportTransitTrain.swift +++ b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/RoutePreview/RoutePreviewStatus/TransportTransitSteps/TransportTransitTrain.swift @@ -8,7 +8,7 @@ final class TransportTransitTrain: TransportTransitCell { @IBOutlet private weak var background: UIView! { didSet { - background.layer.cornerRadius = Config.backgroundCornerRadius + background.layer.setCorner(radius: Config.backgroundCornerRadius) } } diff --git a/iphone/Maps/Core/Theme/Renderers/UISearchBarRenderer.swift b/iphone/Maps/Core/Theme/Renderers/UISearchBarRenderer.swift index 89182b2ce3..b0b57ad729 100644 --- a/iphone/Maps/Core/Theme/Renderers/UISearchBarRenderer.swift +++ b/iphone/Maps/Core/Theme/Renderers/UISearchBarRenderer.swift @@ -27,7 +27,6 @@ class UISearchBarRenderer: UIViewRenderer { var searchTextField: UITextField? if #available(iOS 13, *) { searchTextField = control.searchTextField - control.searchTextField.layer.cornerCurve = .continuous } // Default search bar implementation adds the grey transparent image for background. This code removes it and updates the corner radius. This is not working on iPad designed for mac. @@ -35,8 +34,7 @@ class UISearchBarRenderer: UIViewRenderer { } else { control.setSearchFieldBackgroundImage(UIImage(), for: .normal) } - - searchTextField?.layer.cornerRadius = 8 + searchTextField?.layer.setCorner(radius: 8) searchTextField?.layer.masksToBounds = true // Placeholder color diff --git a/iphone/Maps/Core/Theme/Renderers/UITextFieldRenderer.swift b/iphone/Maps/Core/Theme/Renderers/UITextFieldRenderer.swift index b61037541f..de3c850b37 100644 --- a/iphone/Maps/Core/Theme/Renderers/UITextFieldRenderer.swift +++ b/iphone/Maps/Core/Theme/Renderers/UITextFieldRenderer.swift @@ -20,11 +20,8 @@ extension UITextField { class UITextFieldRenderer { class func render(_ control: UITextField, style: Style) { if let cornerRadius = style.cornerRadius { - control.layer.cornerRadius = cornerRadius + control.layer.setCorner(radius: cornerRadius) control.clipsToBounds = true - if #available(iOS 13.0, *) { - control.layer.cornerCurve = .continuous - } } control.borderStyle = .none var placeholderAttributes = [NSAttributedString.Key : Any]() diff --git a/iphone/Maps/Core/Theme/Renderers/UIViewRenderer.swift b/iphone/Maps/Core/Theme/Renderers/UIViewRenderer.swift index cdd7020f6f..1369df1fe7 100644 --- a/iphone/Maps/Core/Theme/Renderers/UIViewRenderer.swift +++ b/iphone/Maps/Core/Theme/Renderers/UIViewRenderer.swift @@ -54,5 +54,8 @@ class UIViewRenderer { if let round = style.round, round == true { control.layer.cornerRadius = control.size.height / 2 } + if #available(iOS 13.0, *) { + control.layer.cornerCurve = .continuous + } } } diff --git a/iphone/Maps/UI/BottomMenu/Menu/BottomMenuViewController.swift b/iphone/Maps/UI/BottomMenu/Menu/BottomMenuViewController.swift index 74eb3153e6..00f9c52a45 100644 --- a/iphone/Maps/UI/BottomMenu/Menu/BottomMenuViewController.swift +++ b/iphone/Maps/UI/BottomMenu/Menu/BottomMenuViewController.swift @@ -25,8 +25,7 @@ class BottomMenuViewController: MWMViewController { override func viewDidLoad() { super.viewDidLoad() - tableView.layer.cornerRadius = 8 - tableView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] + tableView.layer.setCorner(radius: 8, corners: [.layerMinXMinYCorner, .layerMaxXMinYCorner]) tableView.sectionFooterHeight = 0 tableView.dataSource = presenter diff --git a/iphone/Maps/UI/BottomMenu/Menu/Cells/BottomMenuLayerButton.swift b/iphone/Maps/UI/BottomMenu/Menu/Cells/BottomMenuLayerButton.swift index e11cd1f569..743ae20bf1 100644 --- a/iphone/Maps/UI/BottomMenu/Menu/Cells/BottomMenuLayerButton.swift +++ b/iphone/Maps/UI/BottomMenu/Menu/Cells/BottomMenuLayerButton.swift @@ -13,6 +13,7 @@ final class BottomMenuLayerButton: VerticallyAlignedButton { override func layoutSubviews() { super.layoutSubviews() + imageView.layer.masksToBounds = true updateBadge() } diff --git a/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarButton.swift b/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarButton.swift index b2caf67a06..3651c6e506 100644 --- a/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarButton.swift +++ b/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarButton.swift @@ -24,9 +24,6 @@ class BottomTabBarButtonRenderer { if let backgroundColor = style.backgroundColor { control.backgroundColor = backgroundColor } - if #available(iOS 13.0, *) { - control.layer.cornerCurve = .continuous - } } } diff --git a/iphone/Maps/UI/PlacePage/PlacePageViewController.swift b/iphone/Maps/UI/PlacePage/PlacePageViewController.swift index 2cb69d9fcc..7b6e2470c2 100644 --- a/iphone/Maps/UI/PlacePage/PlacePageViewController.swift +++ b/iphone/Maps/UI/PlacePage/PlacePageViewController.swift @@ -65,15 +65,13 @@ final class PlacePageScrollView: UIScrollView { bgView.alignToSuperview() scrollView.decelerationRate = .fast - scrollView.layer.cornerRadius = 10 - scrollView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] + scrollView.backgroundColor = .clear + + stackView.backgroundColor = .clear - stackView.layer.cornerRadius = 10 - stackView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] - - actionBarContainerView.layer.cornerRadius = 10 + let cornersToMask: CACornerMask = alternativeSizeClass(iPhone: [], iPad: [.layerMinXMaxYCorner, .layerMaxXMaxYCorner]) + actionBarContainerView.layer.setCorner(radius: 16, corners: cornersToMask) actionBarContainerView.layer.masksToBounds = true - actionBarContainerView.layer.maskedCorners = [.layerMinXMaxYCorner, .layerMaxXMaxYCorner] // See https://github.com/organicmaps/organicmaps/issues/6917 for the details. if #available(iOS 13.0, *), previousTraitCollection == nil { diff --git a/iphone/Maps/UI/PlacePage/Views/DifficultyView.swift b/iphone/Maps/UI/PlacePage/Views/DifficultyView.swift index c70066bc2e..493b1fce25 100644 --- a/iphone/Maps/UI/PlacePage/Views/DifficultyView.swift +++ b/iphone/Maps/UI/PlacePage/Views/DifficultyView.swift @@ -43,7 +43,7 @@ class DifficultyView: UIView { for _ in 0..