XIB同一層級,兩個Label的Content Hugging Priority

起因

在使用xib的過程中,在同一層級創(chuàng)建兩個Label:Label1、Label2,并且我需要Label2在Label1的后面10之后,并且兩個Label都是自適應(yīng)長度、高度。


設(shè)置好約束以后會有兩個警告


警告原因

有的時候就是DT,看見黃色的就會惡心,心里發(fā)毛
因為不設(shè)置長度的約束,那么Label的長度在超過IPhone的手機屏幕的時候會讓界面會看不到

解決方案

設(shè)置它的長度約束,并且在不超過屏幕的寬度時自適應(yīng)長度。


  • Label1設(shè)置右邊Trailing與SuperView的Trailing關(guān)系,SuperView Trailing>=SubView Trailing
  • Label2設(shè)置左邊leading與SuperView的leading關(guān)系,SuperView leading >= SubView leading

    警告消失,好爽

如果兩者在不關(guān)聯(lián)的情況下,是沒有問題的

那么開始定制需求,

Label2 leading 在Label1 trailing之后Horizontal Spacing (10)的位置,并且其他的約束不變,加入這個約束



報錯尼瑪這沒法忍


  • 直譯成中文就是“內(nèi)容擁抱優(yōu)先級”,這里就叫做“內(nèi)容環(huán)繞優(yōu)先級”從字面意思上來看就是兩個視圖,誰的“內(nèi)容環(huán)繞優(yōu)先級”高,誰就優(yōu)先環(huán)繞其內(nèi)容
  • 警告的原因是這兩個控件的內(nèi)容環(huán)繞優(yōu)先級都是一樣的。

為什么會這樣?

  • 兩個都有約束,并且一個向右自動對齊,一個向左自動對齊,并且Label2在Label1水平之后的一個固定位置
  • 那么Label1的右邊設(shè)置的是SuperView Trailing>=SubView Trailing Label2設(shè)置了Leading在Label1的trailing的10固定位置,發(fā)生了沖突,那么是使用Label1的約束吶?還是Label2的約束?
  • 優(yōu)先級的作用是,在同一層級,兩個控件都設(shè)置好約束,一個leading、top一個trailing、top 中間的約束是固定10的間距,兩個控件的距離并不一定是10,那么是label1拉伸、壓縮,還是Label2拉伸、壓縮?還是它們同時拉伸、壓縮。這就要設(shè)置內(nèi)容環(huán)繞優(yōu)先級。
    吶呢很繞口?



    值越大,內(nèi)容環(huán)繞優(yōu)先級越高,內(nèi)容環(huán)繞優(yōu)先級越低就越會被拉伸、壓縮

解決方案

  • 在約束的Label2的Content Hugging Priority的優(yōu)先級設(shè)置高,將251改成 250,Label1的“內(nèi)容環(huán)繞優(yōu)先級”高,那么Label2就要環(huán)繞著Label1


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

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

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