日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

IOS开发之Autolayout——“Content Compression Resistance”和“Content Hugging”

發(fā)布時(shí)間:2024/9/30 编程问答 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS开发之Autolayout——“Content Compression Resistance”和“Content Hugging” 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在使用storyboard進(jìn)行UI布局時(shí),我們經(jīng)常不經(jīng)意間會(huì)注意到“Content Compression Resistance Priority”和“Content Hugging Priority”這兩個(gè)屬性。


下面給大家簡(jiǎn)單介紹下這兩個(gè)小家伙:

首先,我們得先來(lái)了解下另一個(gè)屬性intrinsic size(固有尺寸),一個(gè)根據(jù)自身內(nèi)容大小而決定的尺寸。我們都知道,UIButton、UILabel等,在布局時(shí)并不需要給它們?cè)O(shè)置所有constraints,只需要設(shè)置 leading space 和 top space 等能決定 X跟Y的constraints 就能夠進(jìn)行布局,這就是它們的intrinsic size在起作用,決定它們的寬高。

那么,“Content Compression Resistance Priority”和“Content Hugging Priority”這兩個(gè)小家伙跟intrinsic size有什么淵源?

在開(kāi)發(fā)中,我們難免會(huì)同時(shí)對(duì)兩個(gè)UILabel或者UIButton進(jìn)行布局,比如水平并行布局,或者垂直并行布局:


我只是簡(jiǎn)單的為它們添加了決定x和y的constraints,并沒(méi)有給他們其他設(shè)置,按照我們剛才講的intrinsic size(固有尺寸)兩個(gè)label應(yīng)該在除了x和y不同外,寬高保持一致。但是,正如你我所見(jiàn),在storyboard上,兩個(gè)label寬高并不一樣。水平并行的label寬度不同,垂直并行的label高度不同。可見(jiàn),intrinsic size(固有尺寸)在同時(shí)對(duì)多個(gè)label進(jìn)行布局時(shí)并不顯得那么夠!

產(chǎn)生這樣的效果的原因是:

1. 在水平并行布局中,兩個(gè)label的intrinsic size(固有尺寸)加起來(lái)比它們的父view(圖中藍(lán)色的view)還要寬,因此父view沒(méi)辦法完全展示它們,只能通過(guò)壓縮它們來(lái)實(shí)現(xiàn);

2. 而在垂直并行布局中,兩個(gè)label的intrinsic size(固有尺寸)加起來(lái)并沒(méi)有它們的父view那么高,父view為了展示他們,只能將它們拉伸。

通過(guò)上圖,我們清楚的看到,系統(tǒng)并不是同時(shí)對(duì)兩個(gè)label進(jìn)行壓縮或者拉伸,而是只針對(duì)其中一個(gè)。這就是intrinsic size(固有尺寸)跟“Content Compression Resistance Priority”和“Content Hugging Priority”這兩個(gè)小家伙的關(guān)系了。

“Content Compression Resistance Priority”,也叫內(nèi)容壓縮阻力優(yōu)先級(jí)(小名:別擠我),該優(yōu)先級(jí)越高,則越晚輪到被壓縮。

“Content Hugging Priority”,也叫內(nèi)容緊靠?jī)?yōu)先級(jí)(小名:別扯我),該優(yōu)先級(jí)越高,這越晚輪到被拉伸。

因此,在父view大小不夠布局子label時(shí),我們可以通過(guò)增加某個(gè)label的Content Compression Resistance Priority(內(nèi)容壓縮阻力優(yōu)先級(jí))來(lái)防止被壓縮。當(dāng)然降低自身則可以讓自己被壓縮。

同理,在父view大小太大時(shí),我們可以通過(guò)增加label的Content Hugging Priority(內(nèi)容緊靠?jī)?yōu)先級(jí))來(lái)防止被拉伸。降低則可以達(dá)到被拉伸的目的。



文/Z哥(簡(jiǎn)書(shū)作者)
原文鏈接:http://www.jianshu.com/p/a4b8e0c8e68d
著作權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),并標(biāo)注“簡(jiǎn)書(shū)作者”。

總結(jié)

以上是生活随笔為你收集整理的IOS开发之Autolayout——“Content Compression Resistance”和“Content Hugging”的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。