diff options
author | jif <jif@chromium.org> | 2015-04-23 09:53:46 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-23 16:54:10 +0000 |
commit | 19d540e9e0a934ebf638879aa163cd3411dcaae4 (patch) | |
tree | 3bd32dc06af1708cdf703e60cd72340141c5bffa /ios | |
parent | 1befc0df535945d38a04eeedb70d28f35f30a8e6 (diff) | |
download | chromium_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.h | 19 | ||||
-rw-r--r-- | ios/chrome/browser/ui/uikit_ui_util.mm | 29 |
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) { |