Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(284)

Unified Diff: ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm

Issue 2892113002: [ios clean] Fixes Toolbar constraints. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ios/clean/chrome/browser/ui/toolbar/toolbar_constants.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm
diff --git a/ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm b/ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm
index 544f2a153cb02550e2c163f3453ba000b757fcdb..67c54eef1f624427f2fd1fe3ffe8878d113ff065 100644
--- a/ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm
+++ b/ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm
@@ -90,7 +90,7 @@
- (void)setConstraints {
[self.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight];
- [NSLayoutConstraint activateConstraints:@[
+ NSArray* constraints = @[
[self.stackView.topAnchor constraintEqualToAnchor:self.view.topAnchor
constant:kVerticalMargin],
[self.stackView.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor
@@ -109,7 +109,12 @@
constraintEqualToAnchor:self.view.bottomAnchor],
[self.progressBar.heightAnchor
constraintEqualToConstant:kProgressBarHeight],
- ]];
+ ];
+
+ // Set the constraints priority to UILayoutPriorityDefaultHigh so these are
+ // not broken when the views are hidden or the VC's view size is 0.
+ [self activateConstraints:constraints
+ withPriority:UILayoutPriorityDefaultHigh];
}
- (void)viewWillTransitionToSize:(CGSize)size
@@ -123,10 +128,15 @@
#pragma mark - Components Setup
- (void)setUpToolbarButtons {
+ NSMutableArray* buttonConstraints = [[NSMutableArray alloc] init];
+
// Back button.
self.backButton = [ToolbarButton backToolbarButton];
self.backButton.visibilityMask = ToolbarComponentVisibilityCompactWidth |
ToolbarComponentVisibilityRegularWidth;
+ [buttonConstraints
+ addObject:[self.backButton.widthAnchor
+ constraintEqualToConstant:kToolbarButtonWidth]];
[self.backButton addTarget:self
action:@selector(goBack:)
forControlEvents:UIControlEventTouchUpInside];
@@ -136,6 +146,9 @@
self.forwardButton.visibilityMask =
ToolbarComponentVisibilityCompactWidthOnlyWhenEnabled |
ToolbarComponentVisibilityRegularWidth;
+ [buttonConstraints
+ addObject:[self.forwardButton.widthAnchor
+ constraintEqualToConstant:kToolbarButtonWidth]];
[self.forwardButton addTarget:self
action:@selector(goForward:)
forControlEvents:UIControlEventTouchUpInside];
@@ -145,6 +158,9 @@
self.tabSwitchStripButton.visibilityMask =
ToolbarComponentVisibilityCompactWidth |
ToolbarComponentVisibilityRegularWidth;
+ [buttonConstraints
+ addObject:[self.tabSwitchStripButton.widthAnchor
+ constraintEqualToConstant:kToolbarButtonWidth]];
[self.tabSwitchStripButton addTarget:nil
action:@selector(showTabStrip:)
forControlEvents:UIControlEventTouchUpInside];
@@ -154,6 +170,9 @@
self.tabSwitchGridButton.visibilityMask =
ToolbarComponentVisibilityCompactWidth |
ToolbarComponentVisibilityRegularWidth;
+ [buttonConstraints
+ addObject:[self.tabSwitchGridButton.widthAnchor
+ constraintEqualToConstant:kToolbarButtonWidth]];
[self.tabSwitchGridButton addTarget:self
action:@selector(showTabGrid:)
forControlEvents:UIControlEventTouchUpInside];
@@ -163,6 +182,9 @@
self.toolsMenuButton = [ToolbarButton toolsMenuToolbarButton];
self.toolsMenuButton.visibilityMask = ToolbarComponentVisibilityCompactWidth |
ToolbarComponentVisibilityRegularWidth;
+ [buttonConstraints
+ addObject:[self.toolsMenuButton.widthAnchor
+ constraintEqualToConstant:kToolbarButtonWidth]];
[self.toolsMenuButton addTarget:self
action:@selector(showToolsMenu:)
forControlEvents:UIControlEventTouchUpInside];
@@ -170,6 +192,9 @@
// Share button.
self.shareButton = [ToolbarButton shareToolbarButton];
self.shareButton.visibilityMask = ToolbarComponentVisibilityRegularWidth;
+ [buttonConstraints
+ addObject:[self.shareButton.widthAnchor
+ constraintEqualToConstant:kToolbarButtonWidth]];
[self.shareButton addTarget:self
action:@selector(showShareMenu:)
forControlEvents:UIControlEventTouchUpInside];
@@ -177,6 +202,9 @@
// Reload button.
self.reloadButton = [ToolbarButton reloadToolbarButton];
self.reloadButton.visibilityMask = ToolbarComponentVisibilityRegularWidth;
+ [buttonConstraints
+ addObject:[self.reloadButton.widthAnchor
+ constraintEqualToConstant:kToolbarButtonWidth]];
[self.reloadButton addTarget:self
action:@selector(reload:)
forControlEvents:UIControlEventTouchUpInside];
@@ -184,9 +212,17 @@
// Stop button.
self.stopButton = [ToolbarButton stopToolbarButton];
self.stopButton.visibilityMask = ToolbarComponentVisibilityRegularWidth;
+ [buttonConstraints
+ addObject:[self.stopButton.widthAnchor
+ constraintEqualToConstant:kToolbarButtonWidth]];
[self.stopButton addTarget:self
action:@selector(stop:)
forControlEvents:UIControlEventTouchUpInside];
+
+ // // Set the buttons constraints priority to UILayoutPriorityDefaultHigh so
+ // these are not broken when being hidden by the StackView.
+ [self activateConstraints:buttonConstraints
+ withPriority:UILayoutPriorityDefaultHigh];
}
- (void)setUpLocationBarContainer {
@@ -356,4 +392,13 @@
}
}
+// Sets the priority for an array of constraints and activates them.
+- (void)activateConstraints:(NSArray*)constraintsArray
+ withPriority:(UILayoutPriority)priority {
+ for (NSLayoutConstraint* constraint in constraintsArray) {
+ constraint.priority = priority;
+ }
+ [NSLayoutConstraint activateConstraints:constraintsArray];
+}
+
@end
« no previous file with comments | « ios/clean/chrome/browser/ui/toolbar/toolbar_constants.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698