自動佈局Masonry

通過cocoaPod添加Masonry三方, 或者手動添加三方
ViewController.m
代碼見下

1. 
#if 1
    //  創建一個view
    UIView *view = [UIView new];
    view.backgroundColor


----------


 = [UIColor purpleColor];
    [self.view addSubview:view];
    //  300*300 居中顯示的矩形
    [view mas_makeConstraints:^(MASConstraintMaker *make) {
        //  設置中心
        make.center.equalTo(self.view);
        //  設置大小
        make.size.mas_equalTo(CGSizeMake(300, 300));


    }];
    //  1. make方法只負責增加新的約束, 但是不能同時出現兩條出現同一對象的約束, 否則會報錯
    //  2. update方法針對上面的情況, 會更新約束, 以確保不會出現兩條相同的約束
    //  3. remake方法會清除掉之前所有的約束, 並重新創建一個
#endif

2.
代碼見下

#if 1
    //  創建一個view, 略小於上級視圖
    UIView *view1 = [UIView new];
    view1.backgroundColor = [UIColor purpleColor];
    //  一定要先將view貼到上級視圖上, 再創建約束, 否則會報錯
    [self.view addSubview:view1];
    //  偏移量15
    [view1 mas_makeConstraints:^(MASConstraintMaker *make) {
        //  第一種
//        make.top.equalTo(self.view.mas_top).with.offset(15);
//        make.left.equalTo(self.view).with.offset(15);
//        make.bottom.equalTo(self.view).with.offset(-15);
//        make.right.equalTo(self.view).with.offset(-15);

        //  第二種
//        make.top.and.left.and.bottom.and.right.equalTo(self.view).insets(UIEdgeInsetsMake(15, 15, 15, 15));

        //  第三種
        make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(15, 15, 15, 15));

    }];

#endif

  1. 代碼見下
#if 1
    //  兩個高度爲150的view, 居中且等寬, 等間距, 寬度自動計算
    UIView *view1 = [UIView new];
    view1.backgroundColor = [UIColor purpleColor];
    [self.view addSubview:view1];

    UIView *view2 = [UIView new];
    view2.backgroundColor = [UIColor purpleColor];
    [self.view addSubview:view2];

    [view1 mas_makeConstraints:^(MASConstraintMaker *make) {
        //  設置對稱軸, 與上級視圖的對稱軸相同
        make.centerY.equalTo(self.view.mas_centerY);
        make.left.equalTo(self.view).with.offset(15);
        //  因爲view1的右側, 是相對於view2的左側而言, 所以這裏要給view2加上mas_left這個屬性
        make.right.equalTo(view2.mas_left).with.offset(-15);
        make.height.mas_equalTo(150);
        make.width.equalTo(view2);

    }];

    [view2 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.centerY.equalTo(self.view.mas_centerY);
        make.left.equalTo(view1.mas_right).with.offset(15);
        make.right.equalTo(self.view).with.offset(-15);
        make.height.equalTo(view1);
        make.width.equalTo(view1);

    }];
#endif
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章