HuggingPriority和CompressionResistance 一個(gè)例子教你理解

我取名 setContentHuggingPriority為 “抗拉伸”(這個(gè)名字我自己認(rèn)為比較準(zhǔn)確);setContentCompressionResistancePriority 取名為“抗壓縮”,接下來(lái)有個(gè)小例子,里面解釋的也是挺詳細(xì)的

    UILabel * label = [[UILabel alloc]init];
    [self.view addSubview:label];
    label.backgroundColor = [UIColor yellowColor];
    
    UILabel * label2 = [[UILabel alloc]init];
    [self.view addSubview:label2];
    label2.backgroundColor = [UIColor blueColor];
    
    
    /*
     * intrinsicContentSize: 這個(gè)是label 的真實(shí)的 大小size
     * 抗拉伸 和 抗壓縮 都是相對(duì)于intrinsicContentSize 值來(lái)說(shuō)的
     **/
    
    
#if 0
    /*
     * 抗拉伸
     * 主要用在
     * eg:label、label2 限制后 還有空余空間,這個(gè)時(shí)候就需要誰(shuí)來(lái)拉伸了,才能滿足我們的限制
     * setContentHuggingPriority(值越高,越不容易拉伸,所以我取名為‘抗拉伸’)
     **/
    label.text = @"label";
    label2.text = @"label2";
    /*
     * 保證label 不被拉伸,那么只能拉伸label2
     **/
    [label setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
    [label2 setContentHuggingPriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal];
 
#else
    /*
     * 抗壓縮
     * 主要用在
     * eg:label、label2 限制后 ,沒有空余空間,這個(gè)時(shí)候就 只能壓縮某個(gè)label,才能滿足我們的限制
     * setContentCompressionResistancePriority(值越高,越不容易壓縮,所以我取名為‘抗壓縮’)
     **/
    label.text = @"hello,我是第一個(gè)label,請(qǐng)多多!";
    label2.text = @"hello,我是第二個(gè)label,謝謝";
    /*
     * 保證label2 不被壓縮,那么只能壓縮label
     **/
    [label setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal];
    [label2 setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];
    
#endif
    
    [label mas_makeConstraints:^(MASConstraintMaker *make) {
       
        make.left.equalTo(@10);
        make.top.equalTo(@10);
        make.right.equalTo(label2.mas_left).offset(-20);
    }];
    
    [label2 mas_makeConstraints:^(MASConstraintMaker *make) {
       
        make.left.equalTo(label.mas_right).offset(20);
        make.top.equalTo(label);
        make.right.equalTo(@(-10));
    }];

狂戳這里去下載demo 查看一下

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

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,058評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • 不知何時(shí),每當(dāng)夜晚睡覺前頻頻想起曾經(jīng)的自己,那些錯(cuò)過(guò)的人或事,覺得自己以前是那么的膽小懦弱,以致于現(xiàn)在總帶有那...
    語(yǔ)文化急閱讀 271評(píng)論 0 0
  • 打球悟修養(yǎng) 職場(chǎng)謝幕,退隱還鄉(xiāng)。從軌跡上分離后難免有失重和寂寞之感,為了填充和排解把乒乓球當(dāng)做...
    邊驥秋生閱讀 489評(píng)論 0 1
  • 沒車、沒房、沒存款、沒學(xué)歷、沒事業(yè)、沒對(duì)象,是不是你的現(xiàn)狀?是不是經(jīng)常會(huì)感覺自己很失敗,感覺自己一無(wú)是處。...
    J小姐簡(jiǎn)單說(shuō)閱讀 609評(píng)論 0 1

友情鏈接更多精彩內(nèi)容