diff --git a/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarViewController.swift b/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarViewController.swift index 885c3d27a..d58e3e6c8 100644 --- a/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarViewController.swift +++ b/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarViewController.swift @@ -5,13 +5,13 @@ class BottomTabBarViewController: UIViewController { var presenter: BottomTabBarPresenterProtocol! @IBOutlet var searchButton: MWMButton! - @IBOutlet var searchConstraint: NSLayoutConstraint! + @IBOutlet var searchConstraintWithLeftButton: NSLayoutConstraint? + @IBOutlet var searchConstraintWithoutLeftButton: NSLayoutConstraint? @IBOutlet var leftButton: MWMButton! - @IBOutlet var leftButtonConstraint: NSLayoutConstraint! @IBOutlet var bookmarksButton: MWMButton! - @IBOutlet var bookmarksConstraint: NSLayoutConstraint! + @IBOutlet var bookmarksConstraintWithLeftButton: NSLayoutConstraint? + @IBOutlet var bookmarksConstraintWithoutLeftButton: NSLayoutConstraint? @IBOutlet var moreButton: MWMButton! - @IBOutlet var moreConstraint: NSLayoutConstraint! @IBOutlet var downloadBadge: UIView! @IBOutlet var leftButtonBadge: UIView! @@ -38,7 +38,9 @@ class BottomTabBarViewController: UIViewController { presenter.configure() NotificationCenter.default.addObserver(forName: UserDefaults.didChangeNotification, object: nil, queue: nil) { _ in - self.updateLeftButton() + DispatchQueue.main.async { + self.updateLeftButton() + } } } @@ -105,17 +107,15 @@ class BottomTabBarViewController: UIViewController { } private func updateLeftButton() { - NSLayoutConstraint.deactivate([leftButtonConstraint, searchConstraint, bookmarksConstraint, moreConstraint]) - let leftButtonType = Settings.leftButtonType if leftButtonType == .hidden { leftButton.isHidden = true leftButtonBadge.isHidden = true - leftButtonConstraint = NSLayoutConstraint(item: leftButtonConstraint.firstItem!, attribute: leftButtonConstraint.firstAttribute, relatedBy: leftButtonConstraint.relation, toItem: leftButtonConstraint.secondItem, attribute: leftButtonConstraint.secondAttribute, multiplier: 0.01, constant: leftButtonConstraint.constant) - searchConstraint = NSLayoutConstraint(item: searchConstraint.firstItem!, attribute: searchConstraint.firstAttribute, relatedBy: searchConstraint.relation, toItem: searchConstraint.secondItem, attribute: searchConstraint.secondAttribute, multiplier: 0.25, constant: searchConstraint.constant) - bookmarksConstraint = NSLayoutConstraint(item: bookmarksConstraint.firstItem!, attribute: bookmarksConstraint.firstAttribute, relatedBy: bookmarksConstraint.relation, toItem: bookmarksConstraint.secondItem, attribute: bookmarksConstraint.secondAttribute, multiplier: 1, constant: bookmarksConstraint.constant) - moreConstraint = NSLayoutConstraint(item: moreConstraint.firstItem!, attribute: moreConstraint.firstAttribute, relatedBy: moreConstraint.relation, toItem: moreConstraint.secondItem, attribute: moreConstraint.secondAttribute, multiplier: 1.75, constant: moreConstraint.constant) + if let searchConstraintWithLeftButton, let searchConstraintWithoutLeftButton, let bookmarksConstraintWithLeftButton, let bookmarksConstraintWithoutLeftButton { + NSLayoutConstraint.deactivate([searchConstraintWithLeftButton, bookmarksConstraintWithLeftButton]) + NSLayoutConstraint.activate([searchConstraintWithoutLeftButton, bookmarksConstraintWithoutLeftButton]) + } } else { leftButton.isHidden = false leftButtonBadge.isHidden = !needsToShowleftButtonBadge() @@ -124,12 +124,11 @@ class BottomTabBarViewController: UIViewController { leftButton.setImage(leftButtonType.image, for: .normal) leftButton.accessibilityLabel = leftButtonType.description; - leftButtonConstraint = NSLayoutConstraint(item: leftButtonConstraint.firstItem!, attribute: leftButtonConstraint.firstAttribute, relatedBy: leftButtonConstraint.relation, toItem: leftButtonConstraint.secondItem, attribute: leftButtonConstraint.secondAttribute, multiplier: 0.25, constant: leftButtonConstraint.constant) - searchConstraint = NSLayoutConstraint(item: searchConstraint.firstItem!, attribute: searchConstraint.firstAttribute, relatedBy: searchConstraint.relation, toItem: searchConstraint.secondItem, attribute: searchConstraint.secondAttribute, multiplier: 0.75, constant: searchConstraint.constant) - bookmarksConstraint = NSLayoutConstraint(item: bookmarksConstraint.firstItem!, attribute: bookmarksConstraint.firstAttribute, relatedBy: bookmarksConstraint.relation, toItem: bookmarksConstraint.secondItem, attribute: bookmarksConstraint.secondAttribute, multiplier: 1.25, constant: bookmarksConstraint.constant) - moreConstraint = NSLayoutConstraint(item: moreConstraint.firstItem!, attribute: moreConstraint.firstAttribute, relatedBy: moreConstraint.relation, toItem: moreConstraint.secondItem, attribute: moreConstraint.secondAttribute, multiplier: 1.75, constant: moreConstraint.constant) + if let searchConstraintWithLeftButton, let searchConstraintWithoutLeftButton, let bookmarksConstraintWithLeftButton, let bookmarksConstraintWithoutLeftButton { + NSLayoutConstraint.deactivate([searchConstraintWithoutLeftButton, bookmarksConstraintWithoutLeftButton]) + NSLayoutConstraint.activate([searchConstraintWithLeftButton, bookmarksConstraintWithLeftButton]) + } } - NSLayoutConstraint.activate([leftButtonConstraint, searchConstraint, bookmarksConstraint, moreConstraint]) } private func updateBadge() { diff --git a/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarViewController.xib b/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarViewController.xib index 21cc7e17e..c37e66abb 100644 --- a/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarViewController.xib +++ b/iphone/Maps/UI/BottomMenu/TabBar/BottomTabBarViewController.xib @@ -11,15 +11,15 @@ - + + - - - + + @@ -118,10 +118,12 @@ + + @@ -129,6 +131,12 @@ + + + + + +