我聽說viewDidLayoutSubviews
是我們使用約束條件時改變佈局的最佳位置。使用viewDidLayoutSubviews時出現
所以我跳到viewDidLayoutSubviews
我已經創建了三個UIViews
和SubViewed
他們的SuperView。我沒有提到幀計算的代碼。
[self.view addSubview:imgMiddleCircle];
[self.view addSubview:imgFirstCircle];
[self.view addSubview:imgLastCircle];
使用這片我添加這些圈子。
現在,當我運行的代碼在viewDidLayoutSubviews
我得到如下畫面:
當我切換到viewWillLayoutSubviews
我得到這個屏幕上:
爲什麼我即使我正在創建三個圈子,我在viewDidLayoutSubviews
中增加了兩個圈子。
爲什麼在viewWillLayout
給出正確的輸出。
'viewDidLayoutSubviews'被多次調用,這就是爲什麼你看到額外的意見。因此,它不是添加子視圖的最佳位置。通常情況下,你需要在'viewDidLoad'中添加子視圖,如果你確定你想手動計算框架,那麼你只需要'viewDidLayoutSubviews'中的內容' – Alladinian
你的意思是多次調用內部'viewDidLayoutSubviews' ....並且我因爲我打開了自動佈局,所以無法使用'viewDidLoad'。我正根據現有控件進行計算。在viewDidLoad中,我沒有得到現有控件的正確框架 – Dalvik
@RahulMishra在'viewDidLayoutSubviews'中設置框架,並在'viewDidLoad'中添加子視圖。 –