Authored by Jonas Budelmann

update UILabel example

... ... @@ -12,7 +12,6 @@ static UIEdgeInsets const kPadding = {10, 10, 10, 10};
@interface MASExampleLabelView ()
@property (nonatomic, strong) UIButton *bigButton;
@property (nonatomic, strong) UILabel *shortLabel;
@property (nonatomic, strong) UILabel *longLabel;
... ... @@ -26,18 +25,11 @@ static UIEdgeInsets const kPadding = {10, 10, 10, 10};
// text courtesy of http://baconipsum.com/
self.bigButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[self.bigButton setTitle:@"Big Button" forState:UIControlStateNormal];
[self.bigButton setContentEdgeInsets:UIEdgeInsetsMake(20, 5, 20, 5)];
self.bigButton.layer.borderColor = UIColor.blueColor.CGColor;
self.bigButton.layer.borderWidth = 1;
[self addSubview:self.bigButton];
self.shortLabel = UILabel.new;
self.shortLabel.numberOfLines = 3;
self.shortLabel.numberOfLines = 1;
self.shortLabel.textColor = [UIColor purpleColor];
self.shortLabel.lineBreakMode = NSLineBreakByTruncatingTail;
self.shortLabel.text = @"Bacon ipsum dolor sit amet spare ribs fatback kielbasa salami, tri-tip jowl pastrami flank short loin rump sirloin. Tenderloin frankfurter chicken biltong rump chuck filet mignon pork t-bone flank ham hock.";
self.shortLabel.text = @"Bacon";
[self addSubview:self.shortLabel];
self.longLabel = UILabel.new;
... ... @@ -47,22 +39,14 @@ static UIEdgeInsets const kPadding = {10, 10, 10, 10};
self.longLabel.text = @"Bacon ipsum dolor sit amet spare ribs fatback kielbasa salami, tri-tip jowl pastrami flank short loin rump sirloin. Tenderloin frankfurter chicken biltong rump chuck filet mignon pork t-bone flank ham hock.";
[self addSubview:self.longLabel];
[self.bigButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self).insets(kPadding);
make.right.equalTo(self).insets(kPadding);
make.width.equalTo(@100);
}];
[self.shortLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self).insets(kPadding);
make.left.equalTo(self).insets(kPadding);
make.right.equalTo(self.bigButton.mas_left).offset(-5);
[self.longLabel makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.left).insets(kPadding);
make.top.equalTo(self.top).insets(kPadding);
}];
[self.longLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.shortLabel.mas_bottom).offset(kPadding.bottom);
make.left.equalTo(self).insets(kPadding);
make.right.equalTo(self).insets(kPadding);
[self.shortLabel makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.longLabel.centerY);
make.right.equalTo(self.right).insets(kPadding);
}];
return self;
... ... @@ -76,8 +60,9 @@ static UIEdgeInsets const kPadding = {10, 10, 10, 10};
// stay tuned for new easier way todo this coming soon to Masonry
self.shortLabel.preferredMaxLayoutWidth = CGRectGetWidth(self.shortLabel.frame);
self.longLabel.preferredMaxLayoutWidth = CGRectGetWidth(self.longLabel.frame);
CGFloat width = CGRectGetMinX(self.shortLabel.frame) - kPadding.left;
width -= CGRectGetMinX(self.longLabel.frame);
self.longLabel.preferredMaxLayoutWidth = width;
// need to layoutSubviews again as frames need to recalculated with preferredLayoutWidth
[super layoutSubviews];
... ...