我听说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'中添加子视图。 –