masonry自适应文字大小

//
//  YellowViewController.m
//  MasonryTest
//
//  Created by 舒通 on 2017/1/11.
//  Copyright © 2017年 shutong. All rights reserved.
//

#import <Masonry.h>
#import "YellowViewController.h"
#import "ViewController.h"

@interface YellowViewController ()

@property (nonatomic, strong) UIView *yellowView;
@property (nonatomic, strong) UIView *blueView;
@property (nonatomic, strong) UIView *greenView;
@property (nonatomic, strong) UILabel *textLabel;

@end

@implementation YellowViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    // Do any additional setup after loading the view.
    
    [self createView:self.index];
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


#pragma mark - creat UI
- (void) createView:(NSInteger)index {
    switch (index) {
        case 10:{
//            设置内边距
            [self.yellowView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.equalTo(self.view).with.offset(10);
                make.top.equalTo(self.view).with.offset(10);
                make.right.equalTo(self.view).with.offset(-10);
                make.bottom.equalTo(self.view).with.offset(-10);
            }];
        }
            break;
        case 11:{
//            设置内边距
            [self.blueView mas_makeConstraints:^(MASConstraintMaker *make) {
//                下右不需要写负号,insets方法中已经为我们做了取反的操作了
                make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(10, 10, 10, 10));
            }];
            
            
        }
            break;
        case 12:{
            [self.greenView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.center.equalTo(self.view);
         // 这里通过mas_equalTo给size设置了基础数据类型的参数,参数为CGSize的结构体
                make.size.mas_equalTo(CGSizeMake(300, 300));
            }];
            
            __weak typeof(self)weakSelf = self;
            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(4.f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                [weakSelf.greenView mas_updateConstraints:^(MASConstraintMaker *make) {
                    __strong typeof(weakSelf)blockSelf = weakSelf;
                    make.centerX.equalTo(blockSelf.view).offset(100);
                    make.size.mas_equalTo(CGSizeMake(100, 100));
                }];
            });
            
        }
            break;
        case 13:{
            self.textLabel.text = @"这是测试的字符串。能看到1、2、3个步骤,第一步当然是上传照片了,要上传正面近照哦。上传后,网站会自动识别你的面部,如果觉得识别的不准,你还可以手动修改一下。左边可以看到16项修改参数,最上面是整体修改,你也可以根据自己的意愿单独修改某项,将鼠标放到选项上面,右边的预览图会显示相应的位置。";
            
            [self.textLabel mas_makeConstraints:^(MASConstraintMaker *make) {
                make.center.equalTo(self.view);
                
//                设置宽度小于等于200
                make.width.lessThanOrEqualTo(@200);
//                设置高度大于等于10
                make.height.greaterThanOrEqualTo(@0);
            }];
            
            UIView *view = [[UIView alloc]init];
            view.backgroundColor = [UIColor redColor];
            [self.view addSubview:view];
            [view mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.mas_equalTo(self.textLabel.mas_bottom).offset(10);
                make.size.mas_equalTo(CGSizeMake(self.view.frame.size.width, 20));
            }];
        }
            break;
            
        case 14:{
            /**
             Masonry为我们提供了三个默认的方法,priorityLow()、priorityMedium()、priorityHigh(),这三个方法内部对应着不同的默认优先级。
             除了这三个方法,我们也可以自己设置优先级的值,可以通过priority()方法来设置。
             
             Masonry也帮我们定义好了一些默认的优先级常量,分别对应着不同的数值,优先级最大数值是1000。
             */
            [self.yellowView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.center.equalTo(self.view);
                make.width.equalTo(self.view).priorityLow();
                make.width.equalTo(@20).priorityHigh();
                make.height.equalTo(self.view).priority(200);
                make.height.equalTo(@100).priority(1000);
                
            }];
            
        }
            break;
            
        case 15: {
//             设置当前约束值乘以多少,例如这个例子是redView的宽度是self.view宽度的0.2倍
            [self.blueView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.center.equalTo(self.view);
                make.height.mas_equalTo(30);
                make.width.mas_equalTo(self.view).multipliedBy(0.5);
            }];
        }
            break;
            
        default:
            break;
    }
    
}

#pragma mark - touch Event
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    
    ViewController *viewVC = [[ViewController alloc]init];
    [self dismissViewControllerAnimated:viewVC completion:^{
        
    }];
}


#pragma mark - setter / getter

- (UIView *)yellowView {
    if (_yellowView == nil) {
        _yellowView = [[UIView alloc]init];
        _yellowView.backgroundColor = [UIColor yellowColor];
        [self.view addSubview:_yellowView];
    }
    return _yellowView;
}
- (UIView *)blueView {
    if (_blueView == nil) {
        _blueView = [[UIView alloc]init];
        _blueView.backgroundColor = [UIColor blueColor];
        [self.view addSubview:_blueView];
    }
    return _blueView;
}
- (UIView *)greenView {
    if (_greenView == nil) {
        _greenView = [[UIView alloc]init];
        _greenView.backgroundColor = [UIColor greenColor];
        [self.view addSubview:_greenView];
    }
    return _greenView;
}
- (UILabel *)textLabel {
    if (_textLabel == nil) {
        _textLabel = [UILabel new];
        _textLabel.font = [UIFont systemFontOfSize:14];
        _textLabel.textColor = [UIColor redColor];
        _textLabel.backgroundColor = [UIColor greenColor];
        _textLabel.numberOfLines = 0;
        [self.view addSubview:_textLabel];
    }
    return _textLabel;
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,924评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,781评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,813评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,264评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,273评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,383评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,800评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,482评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,673评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,497评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,545评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,240评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,802评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,866评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,101评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,673评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,245评论 2 341

推荐阅读更多精彩内容