簡體   English   中英

viewDidLoad中的iOS訂購行為

[英]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框架的值。 我對么? 我將如何尋找此類問題的答案而不必下次再問在線社區?

幾種可能性:

  1. 您顯然正在使用自動布局 使用自動布局時,設置標簽的text屬性的過程將導致對該視圖重新應用約束。 手動設置frame ,該frame將一直有效,直到重新應用自動布局約束(例如,再次更新UILabel或調用layoutIfNeeded )為止,此時frame被重新計算/調整。 通常在自動版式中,不會手動調整框架。

  2. 也許presentData正在調用sizeToFit或類似的東西? 這顯然也會改變frame

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM