我需要一些幫助來了解viewDidLAyoutSubviews
方法以及如何安全地使用它。在viewDidLayoutSubviews之後調用一次方法
我需要在viewDidAppear
方法之前以編程方式編輯我的一些子視圖。爲了使它正常工作,我當然需要等到目標子視圖放好後再編輯它們。
現在我認爲這是viewDidLayoutSubviews
方法的用處,但是當我測試它時,我發現它實際上在我的viewDidAppear
方法之前調用了兩次。我試圖編輯我的子視圖只有第一次viewDidLayoutSubviews
被稱爲,因爲我只想運行[self editMySubviews]
一次,但是然後目標子視圖沒有準備好,它搞砸了。這是我嘗試:
- (void)viewDidLayoutSubviews {
if (!myBoolean) {
[self editMySubviews];
myBoolean = YES;
}
}
當然,如果我刪除它自我修復下一次調用該方法的if-statement
,但我只想[self editMySubviews]
被調用一次。
所以我的問題是,當我可以在viewDidAppear
方法之前調用[self editMySubviews]
方法,並且100%確定所有子視圖都可以編輯?現在在我的情況下,viewDidLayoutSubviews
在viewDidAppear
之前被調用兩次,但每次都會這樣嗎?在第二次調用viewDidLayputSubviews
之後撥打[self editMySubviews]
是否安全?
你在做什麼'editMySubviews'? – dan
根據其在不同設備上不同的superView.frame.size.width編輯一些按鈕約束 – Peter
那麼爲什麼你只需要做一次?每當子視圖佈局考慮超視圖尺寸變化時,您都應該這樣做。 – dan