我正在为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(这就是我需要的),所有的赌注都会关闭。
答案 0 :(得分:0)
您需要在viewDidLayoutSubviews()函数中获取self.view的子视图,该函数被调用以通知视图控制器其视图刚刚布置了其子视图。