[英]iOS ordering behaviors in viewDidLoad
在viewDidLoad
,我有一個像這樣的初始設置-
// Output all the appropriate text to UITextLabel depending on the state of the app
[self presentData];
// Button sizing
UIelement.frame=CGRectMake(blah blah blah);
為什么當我按先前的順序執行操作時,我得到的輸出文本沒有進行大小調整,直到當我按以下順序鍵入代碼時,另一個函數再次調用了當前數據
UIelement.frame=CGRectMake(blah blah blah);
[self presentData];
它將適當調整大小以開始。 我知道順序很重要,但是我想知道為什么? 在下次遇到這樣的問題時,我將如何找出為什么會發生這種情況? 我的猜測是,呈現數據,更改uilabel,更新視圖,但出於某種原因cgrectmake不會更新視圖,而只是更改模型中uilabel框架的值。 我對么? 我將如何尋找此類問題的答案而不必下次再問在線社區?
幾種可能性:
您顯然正在使用自動布局 。 使用自動布局時,設置標簽的text
屬性的過程將導致對該視圖重新應用約束。 手動設置frame
,該frame
將一直有效,直到重新應用自動布局約束(例如,再次更新UILabel
或調用layoutIfNeeded
)為止,此時frame
被重新計算/調整。 通常在自動版式中,不會手動調整框架。
也許presentData
正在調用sizeToFit
或類似的東西? 這顯然也會改變frame
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.