Masonry baseLine的理解

        //displayView
        UIView *displayView = [UIView new];
        displayView.backgroundColor = [UIColor blackColor];
        [self addSubview:displayView];
        
        //keybordView
        UIView *keybordView = [UIView new];
        [self addSubview:keybordView];
        
        [displayView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.left.right.equalTo(self);
            make.height.equalTo(keybordView).multipliedBy(.3f);
        }];
        
        [keybordView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(displayView.mas_bottom);
            make.left.right.bottom.equalTo(self);
        }];
        
        //設置顯示位置的數字為0
        UILabel *displayNum = [[UILabel alloc]init];
        [displayView addSubview:displayNum];
        displayNum.text = @"0";
        displayNum.font = [UIFont fontWithName:@"HeiTi SC" size:70];
        displayNum.textColor = [UIColor whiteColor];
        displayNum.textAlignment = NSTextAlignmentRight;
        [displayNum mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.and.right.equalTo(displayView).with.offset(-10);
            make.bottom.equalTo(displayView).with.offset(-10);
        }];
        
        UIView *testView = [UIView new];
        testView.backgroundColor = [UIColor redColor];
        [keybordView addSubview:testView];
        
        [testView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.width.equalTo(keybordView.mas_width).multipliedBy(.25f);
            make.height.equalTo(keybordView.mas_height).multipliedBy(.2f);
            make.left.equalTo(keybordView.mas_left);
            make.baseline.equalTo(keybordView.mas_baseline).multipliedBy(0.2);
        }];
        
        //我的理解mas_baseline是view的底部距離頂部的距離。注意參照點是頂部
        //make.baseline.equalTo(keybordView.mas_baseline).multipliedBy(1);
        //等價testView的底部距離keybordView頂部的距離 = keybordView的底部距離距離頂部的距離 乘以 1
屏幕快照 2016-04-26 下午3.08.34.png
注解如下:

displayView 黑色區(qū)域
keybordView 圖中白色區(qū)域

現在要把紅色區(qū)域添加到白色區(qū)域

詳細代碼如下:

        UIView *testView = [UIView new];
        testView.backgroundColor = [UIColor redColor];
        [keybordView addSubview:testView];
        
        [testView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.width.equalTo(keybordView.mas_width).multipliedBy(.25f);
            make.height.equalTo(keybordView.mas_height).multipliedBy(.2f);
            make.left.equalTo(keybordView.mas_left);
            make.baseline.equalTo(keybordView.mas_baseline).multipliedBy(0.2);
        }];
主要解釋如下這句代碼:
make.baseline.equalTo(keybordView.mas_baseline).multipliedBy(0.2);
        }];

  • mas_baseline是view的底部距離頂部的距離。注意參照點是頂部

因為

make.height.equalTo(keybordView.mas_height).multipliedBy(.2f);

testView的高度等于keybordView的高度乘以0.2

所以

  • make.baseline.equalTo(keybordView.mas_baseline).multipliedBy(.2f);

根據代碼判斷:

  • 等價testView的底部距離keybordView頂部的距離 = keybordView的底部距離距離頂部的距離 乘以 0.2

剛好和高度吻合

所以testView顯示的位置就剛好在keybordView的左上角的位置。頂部和keyboardView的頂部吻合。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Masonry是一個輕量級的布局框架,擁有自己的描述語法,采用更優(yōu)雅的鏈式語法封裝自動布局,簡潔明了并具有高可讀性...
    3dcc6cf93bb5閱讀 1,933評論 0 1
  • (一)Masonry介紹 Masonry是一個輕量級的布局框架 擁有自己的描述語法 采用更優(yōu)雅的鏈式語法封裝自動布...
    木易林1閱讀 2,576評論 0 3
  • Masonry介紹與使用實踐(快速上手Autolayout) 前言 MagicNumber -> autoresi...
    Bonew01閱讀 623評論 0 0
  • 轉載:https://www.cnblogs.com/liutingIOS/p/5406858.html 一、Ma...
    JasonYuan123閱讀 1,493評論 0 1
  • 從小到大,除了在小說中、銀屏上讀到、看到令人恐懼的事情,在生活中,很少有恐懼的感覺。 很多次回首、無...
    Jenny_Yuan閱讀 283評論 0 2

友情鏈接更多精彩內容