Iphone viewWillLayoutSubviews调用太多

Iphone viewWillLayoutSubviews调用太多,iphone,objective-c,ios,ipad,uikit,Iphone,Objective C,Ios,Ipad,Uikit,在我的viewController.view中,我在viewWillLayoutSubviews中做了一些工作,如果方向改变,这些工作可以组织哪些子视图是可见的,哪些子视图要放在前面,哪些子视图要隐藏,等等 但我的视图上有一些按钮,它们会在每次按下时以某种方式导致调用viewWillLayoutSubviews。为什么会这样?根据Apple文档,只有当视图的边界发生变化时,才会调用viewWillLayoutSubviews 结果是,我的视图仅仅通过按下一个按钮就被重新排列,但我根本没有旋转设备

在我的
viewController.view
中,我在
viewWillLayoutSubviews
中做了一些工作,如果方向改变,这些工作可以组织哪些子视图是可见的,哪些子视图要放在前面,哪些子视图要隐藏,等等

但我的视图上有一些按钮,它们会在每次按下时以某种方式导致调用
viewWillLayoutSubviews
。为什么会这样?根据Apple文档,只有当视图的边界发生变化时,才会调用
viewWillLayoutSubviews


结果是,我的视图仅仅通过按下一个按钮就被重新排列,但我根本没有旋转设备,也没有以任何方式操纵view.bounds或view.frame。

奇怪的是,我编写了一个演示,只有两种方法,一种是按钮操作,另一种是
-(void)viewWillLayoutSubviews
,当我按下按钮时,
-(无效)viewWillLayoutSubviews
未调用。可能代码中有错误?

您最好做一件事,andrews在按钮按下时将其设置为真,并在layoutSubviews上检查它,然后操作它是否为真。您知道我正在尝试执行的操作。

您能告诉我在按钮按下时执行的操作吗?是的,按钮按创建一个子视图并将其添加到视图中。当然,这是因为在按按钮时添加子视图。这是有意义的,因为添加子视图,它会再次尝试布局子视图。您最好做一件事,andrews在按按钮时将布尔设置为真,并在布局子视图上检查它,然后操作它是否为真。您得到的是注意对我问题的评论,似乎罪犯已经被找到。我也接受你对我上述问题的评论。那么最后,你对这个问题使用了什么解决方案?