Compact中的子视图未返回的按钮:常规

时间:2014-11-12 01:36:56

标签: ios xcode uiview subview superview

我正在为iOS编写应用程序。我在视图中有3个按钮(自定义UIButton子类),每个按钮都通过IB以图形方式添加。我遇到了一个错误,我意识到这个错误只是其中一个按钮的superview是self.view(其中self是ViewController)。其他按钮属于这些东西:

<_UILayoutGuide: 0x7f92d3d75d50; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x7f92d3d76070>>

我完全不知道他们为什么被添加到这个子视图而不是self.view的直接子视图。虽然我可以处理这些事实,即它们不是带有一些额外代码的直接子视图,但我想先知道为什么它们不是直接的子视图。

编辑:

我创建了一个IBAction,当我点击它时,它给出了按钮的超视图,当我点击它时,我得到了视图。但是,当我尝试在self.view.subviews中查找按钮时,它们就不存在了。

编辑2:

我已经发现当ViewController在Any:Any时,子视图会被self.view.subviews很好地返回。如果我把它切换到Compact:Regular(这就是我需要的),所有的赌注都会关闭。

1 个答案:

答案 0 :(得分:0)

您需要在viewDidLayoutSubviews()函数中获取self.view的子视图,该函数被调用以通知视图控制器其视图刚刚布置了其子视图。