容器view的自適應約束設置

需求:大部分情況下,我們設置容器view的約束,都是可以用約束固定它的大小的,但是有一種情況,view的高度無法確定,因為它的高度要隨著里面子控件label的高度大小來變,label內容多,自動換行后,高度就會變大,view的高度也要跟著增長,這個時候view的高度要隨著label的高度而變

分析:當遇到自適應的情況時,把view的高度固定就不好了,可以上下方向選一個參照,固定一頭,如固定了底部的話,設置一個相對于label的自適應約束,就會向上增長

解決:如果要在cell中加一個子控件,包括用view包裝起來的,要考慮它的頂部和底部始終連著誰,如果該控件上面的東西有時候有,有時候沒有,那么設置約束的時候,它的頂部就不能始終連著它上面的東西,要有一個固定的參照

父控件的高度應該跟隨子控件,父控件高度應該跟著里面label的內容多少相應的壓縮,距離labe底部為10,所以一開始把view的高度固定是不對的,應該把它的高度約束刪掉,一定要刪掉,不固定,怎么處理呢?

拿到子控件label,ctrl 拖線到父控件UIView,選擇bottom Spacing to Container距離容器底部的間距,這個屬性的意思是說設置子控件和父控件搞一個固定的間距,這樣設置了約束之后,父控件永遠比子控件高10的間距,如果希望父控件和子控件連在一起,可以設置為0

總結:1.先給這個view設置好高度約束,當里面加上label后,給label設置好上和下約束,寬高可以不用設置

2.刪除view的高度約束設置,這里可以從view拖線到label,設置bottom spacing to container為0,也可以從label拖線到view設置約束為0

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容