summaryrefslogtreecommitdiffstats
path: root/ios
diff options
context:
space:
mode:
authorjif <jif@chromium.org>2015-04-23 09:53:46 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-23 16:54:10 +0000
commit19d540e9e0a934ebf638879aa163cd3411dcaae4 (patch)
tree3bd32dc06af1708cdf703e60cd72340141c5bffa /ios
parent1befc0df535945d38a04eeedb70d28f35f30a8e6 (diff)
downloadchromium_src-19d540e9e0a934ebf638879aa163cd3411dcaae4.zip
chromium_src-19d540e9e0a934ebf638879aa163cd3411dcaae4.tar.gz
chromium_src-19d540e9e0a934ebf638879aa163cd3411dcaae4.tar.bz2
Add centering, cropping, and constraint setup methods to uikit_ui_util.
BUG=None. Review URL: https://codereview.chromium.org/1079933002 Cr-Commit-Position: refs/heads/master@{#326550}
Diffstat (limited to 'ios')
-rw-r--r--ios/chrome/browser/ui/uikit_ui_util.h19
-rw-r--r--ios/chrome/browser/ui/uikit_ui_util.mm29
2 files changed, 45 insertions, 3 deletions
diff --git a/ios/chrome/browser/ui/uikit_ui_util.h b/ios/chrome/browser/ui/uikit_ui_util.h
index 37aa0d3..052fbff 100644
--- a/ios/chrome/browser/ui/uikit_ui_util.h
+++ b/ios/chrome/browser/ui/uikit_ui_util.h
@@ -101,6 +101,9 @@ UIImage* BlurImage(UIImage* image,
CGFloat saturationDeltaFactor,
UIImage* maskImage);
+// Returns a cropped image using |cropRect| on |image|.
+UIImage* CropImage(UIImage* image, const CGRect& cropRect);
+
// Returns the interface orientation of the app.
UIInterfaceOrientation GetInterfaceOrientation();
@@ -127,14 +130,26 @@ void ApplyVisualConstraints(NSArray* constraints,
NSDictionary* subviewsDictionary,
UIView* parentView);
+// Applies all |constraints| with |metrics| to all views in |subviewsDictionary|
+// in the superview |parentView|
+void ApplyVisualConstraintsWithMetrics(NSArray* constraints,
+ NSDictionary* subviewsDictionary,
+ NSDictionary* metrics,
+ UIView* parentView);
+
// Adds a constraint that |subview| is center aligned horizontally in
// |parentView|.
-// |subview| must be a subiew of |parentView|.
+// |subview| must be a subview of |parentView|.
void AddSameCenterXConstraint(UIView* parentView, UIView* subview);
+// Adds a constraint that |subview| is center aligned vertically in
+// |parentView|.
+// |subview| must be a subview of |parentView|.
+void AddSameCenterYConstraint(UIView* parentView, UIView* subview);
+
// Adds a constraint that |subview1| and |subview2| are center aligned
// vertically on |parentView|.
-// |subview1| and |subview2| must be subiews of |parentView|.
+// |subview1| and |subview2| must be subview of |parentView|.
void AddSameCenterYConstraint(UIView* parentView,
UIView* subview1,
UIView* subview2);
diff --git a/ios/chrome/browser/ui/uikit_ui_util.mm b/ios/chrome/browser/ui/uikit_ui_util.mm
index 5810da0..8d301aa 100644
--- a/ios/chrome/browser/ui/uikit_ui_util.mm
+++ b/ios/chrome/browser/ui/uikit_ui_util.mm
@@ -353,6 +353,13 @@ UIImage* BlurImage(UIImage* image,
return outputImage;
}
+UIImage* CropImage(UIImage* image, const CGRect& cropRect) {
+ CGImageRef cgImage = CGImageCreateWithImageInRect([image CGImage], cropRect);
+ UIImage* result = [UIImage imageWithCGImage:cgImage];
+ CGImageRelease(cgImage);
+ return result;
+}
+
UIInterfaceOrientation GetInterfaceOrientation() {
return [[UIApplication sharedApplication] statusBarOrientation];
}
@@ -419,13 +426,21 @@ UIColor* InterpolateFromColorToColor(UIColor* firstColor,
void ApplyVisualConstraints(NSArray* constraints,
NSDictionary* subviewsDictionary,
UIView* parentView) {
+ ApplyVisualConstraintsWithMetrics(constraints, subviewsDictionary, nil,
+ parentView);
+}
+
+void ApplyVisualConstraintsWithMetrics(NSArray* constraints,
+ NSDictionary* subviewsDictionary,
+ NSDictionary* metrics,
+ UIView* parentView) {
for (NSString* constraint in constraints) {
DCHECK([constraint isKindOfClass:[NSString class]]);
[parentView
addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:constraint
options:0
- metrics:nil
+ metrics:metrics
views:subviewsDictionary]];
}
}
@@ -442,6 +457,18 @@ void AddSameCenterXConstraint(UIView* parentView, UIView* subview) {
constant:0]];
}
+void AddSameCenterYConstraint(UIView* parentView, UIView* subview) {
+ DCHECK_EQ(parentView, [subview superview]);
+ [parentView addConstraint:[NSLayoutConstraint
+ constraintWithItem:subview
+ attribute:NSLayoutAttributeCenterY
+ relatedBy:NSLayoutRelationEqual
+ toItem:parentView
+ attribute:NSLayoutAttributeCenterY
+ multiplier:1
+ constant:0]];
+}
+
void AddSameCenterYConstraint(UIView* parentView,
UIView* subview1,
UIView* subview2) {