我有一個UIView
寬度/高度爲0/0。當我添加subviews
到我的UIView
,有沒有辦法讓寬度和高度自動更新?ios uiview自動擴展尺寸
例如 如果我添加了10
子視圖,每個子視圖的寬度爲50
,那麼我希望我的UIView
的寬度爲500
。
我有一個UIView
寬度/高度爲0/0。當我添加subviews
到我的UIView
,有沒有辦法讓寬度和高度自動更新?ios uiview自動擴展尺寸
例如 如果我添加了10
子視圖,每個子視圖的寬度爲50
,那麼我希望我的UIView
的寬度爲500
。
我沒有遇到任何這樣的功能,它會自動執行。您必須通過計算其子視圖的位置和大小來設置框架。
UIView的sizeToFit
將調整您的視圖的大小,以適應所有內容。
但是...這很依賴於您添加到視圖中的子視圖。添加視圖很簡單,只要:
[myView addSubview:innerView];
內的frame
產生很大的差別。
如果添加10個x/y原點爲0/0和寬度/高度爲0/0的子視圖,則sizeToFit
會說你需要你的視圖需要寬度/高度爲0/0以適應所有的子視圖。
如果您添加1個子視圖,其中x/y原點爲10/10,寬度/高度爲5/5,然後sizeToFit
並說您需要15/15的寬度/高度以適合所有子視圖。
是的,UIView可以做到這一點。我最近遇到了這個問題,這裏是我的解決方案。
假設你有一個UIView和其中的10個子視圖。您必須爲子視圖設置約束,以便外部UIView能夠知道它的大小。
例如,您想垂直佈局10個子視圖。約束將是
the 10th subview must have bottom margin constraint related to the outside UIView
。爲了滿足上面的約束條件,外部UIView必須有一個高度自動包裝4個子子視圖。