|
@@ -24,31 +24,39 @@
|
|
|
self.growingButton = [UIButton buttonWithType:UIButtonTypeSystem];
|
|
|
[self.growingButton setTitle:@"Grow Me!" forState:UIControlStateNormal];
|
|
|
self.growingButton.layer.borderColor = UIColor.greenColor.CGColor;
|
|
|
- self.growingButton.layer.borderWidth = 2;
|
|
|
+ self.growingButton.layer.borderWidth = 3;
|
|
|
|
|
|
[self.growingButton addTarget:self action:@selector(didTapGrowButton:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
[self addSubview:self.growingButton];
|
|
|
|
|
|
self.buttonSize = CGSizeMake(100, 100);
|
|
|
+
|
|
|
+ // make sure updateConstraints gets called
|
|
|
[self setNeedsUpdateConstraints];
|
|
|
|
|
|
return self;
|
|
|
}
|
|
|
|
|
|
+// this is Apple's recommended place for adding/updating constraints
|
|
|
- (void)updateConstraints {
|
|
|
[super updateConstraints];
|
|
|
|
|
|
[self.growingButton updateConstraints:^(MASConstraintMaker *make) {
|
|
|
make.center.equalTo(self);
|
|
|
- make.width.equalTo(@(self.buttonSize.width));
|
|
|
- make.height.equalTo(@(self.buttonSize.height));
|
|
|
+ make.width.equalTo(@(self.buttonSize.width)).priorityLow();
|
|
|
+ make.height.equalTo(@(self.buttonSize.height)).priorityLow();
|
|
|
+ make.width.lessThanOrEqualTo(self);
|
|
|
+ make.height.lessThanOrEqualTo(self);
|
|
|
}];
|
|
|
}
|
|
|
|
|
|
- (void)didTapGrowButton:(UIButton *)button {
|
|
|
- self.buttonSize = CGSizeMake(self.buttonSize.width * 1.1, self.buttonSize.height * 1.1);
|
|
|
+ self.buttonSize = CGSizeMake(self.buttonSize.width * 1.3, self.buttonSize.height * 1.3);
|
|
|
|
|
|
+ // tell constraints they need updating
|
|
|
[self setNeedsUpdateConstraints];
|
|
|
+
|
|
|
+ // update constraints now so we can animate the change
|
|
|
[self updateConstraintsIfNeeded];
|
|
|
|
|
|
[UIView animateWithDuration:0.4 animations:^{
|