123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- //
- // MASExampleAspectFitView.m
- // Masonry iOS Examples
- //
- // Created by Michael Koukoullis on 19/01/2015.
- // Copyright (c) 2015 Jonas Budelmann. All rights reserved.
- //
- #import "MASExampleAspectFitView.h"
- @interface MASExampleAspectFitView ()
- @property UIView *topView;
- @property UIView *topInnerView;
- @property UIView *bottomView;
- @property UIView *bottomInnerView;
- @end
- @implementation MASExampleAspectFitView
- // Designated initializer
- - (instancetype)init
- {
- self = [super initWithFrame:CGRectZero];
-
- if (self) {
-
- // Create views
- self.topView = [[UIView alloc] initWithFrame:CGRectZero];
- self.topInnerView = [[UIView alloc] initWithFrame:CGRectZero];
- self.bottomView = [[UIView alloc] initWithFrame:CGRectZero];
- self.bottomInnerView = [[UIView alloc] initWithFrame:CGRectZero];
-
- // Set background colors
- UIColor *blueColor = [UIColor colorWithRed:0.663 green:0.796 blue:0.996 alpha:1];
- [self.topView setBackgroundColor:blueColor];
- UIColor *lightGreenColor = [UIColor colorWithRed:0.784 green:0.992 blue:0.851 alpha:1];
- [self.topInnerView setBackgroundColor:lightGreenColor];
- UIColor *pinkColor = [UIColor colorWithRed:0.992 green:0.804 blue:0.941 alpha:1];
- [self.bottomView setBackgroundColor:pinkColor];
-
- UIColor *darkGreenColor = [UIColor colorWithRed:0.443 green:0.780 blue:0.337 alpha:1];
- [self.bottomInnerView setBackgroundColor:darkGreenColor];
-
- // Layout top and bottom views to each take up half of the window
- [self addSubview:self.topView];
- [self.topView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.right.and.top.equalTo(self);
- }];
-
- [self addSubview:self.bottomView];
- [self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.right.and.bottom.equalTo(self);
- make.top.equalTo(self.topView.mas_bottom);
- make.height.equalTo(self.topView);
- }];
-
- // Inner views are configured for aspect fit with ratio of 3:1
- [self.topView addSubview:self.topInnerView];
- [self.topInnerView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.width.equalTo(self.topInnerView.mas_height).multipliedBy(3);
-
- make.width.and.height.lessThanOrEqualTo(self.topView);
- make.width.and.height.equalTo(self.topView).with.priorityLow();
-
- make.center.equalTo(self.topView);
- }];
-
- [self.bottomView addSubview:self.bottomInnerView];
- [self.bottomInnerView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.equalTo(self.bottomInnerView.mas_width).multipliedBy(3);
-
- make.width.and.height.lessThanOrEqualTo(self.bottomView);
- make.width.and.height.equalTo(self.bottomView).with.priorityLow();
-
- make.center.equalTo(self.bottomView);
- }];
- }
-
- return self;
- }
- // Override previous designated initializer
- - (instancetype)initWithFrame:(CGRect)frame
- {
- return [self init];
- }
- @end
|