Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Autolayout 自动布局和子视图_Autolayout_Subview_Iad_Subviews - Fatal编程技术网

Autolayout 自动布局和子视图

Autolayout 自动布局和子视图,autolayout,subview,iad,subviews,Autolayout,Subview,Iad,Subviews,我正在使用iAd套件和来自苹果的故事板,根据这个链接。。。 在我打开自动布局之前,一切都正常。它构建良好,但在运行时崩溃。我得到的结果是: 2013-08-24 12:06:36.138 TabbedBanner[7272:c07]*在-[UIView layoutSublayersOfLayer:],/SourceCache/UIKit_Sim/UIKit-2380.17/UIView.m:5781中断言失败 2013-08-24 12:06:36.139 TabbedBanner[7272

我正在使用iAd套件和来自苹果的故事板,根据这个链接。。。

在我打开自动布局之前,一切都正常。它构建良好,但在运行时崩溃。我得到的结果是:

2013-08-24 12:06:36.138 TabbedBanner[7272:c07]*在-[UIView layoutSublayersOfLayer:],/SourceCache/UIKit_Sim/UIKit-2380.17/UIView.m:5781中断言失败 2013-08-24 12:06:36.139 TabbedBanner[7272:c07]*由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因是:“将-viewDidLayoutSubviews发送到视图控制器后仍需要自动布局。”。BannerViewController的实现需要向视图发送-layoutSubviews以调用自动布局。” ***第一次抛出调用堆栈: (0x1e27012 0x110ee7e 0x1e26e78 0xba4665 0xa347a 0x11226b0 0x1358fc0 0x134d33c 0x1358eaf 0x1422bd 0x8ab56 0x8966f 0x89589 0x887e4 0x883ef 0x65c9d 0x5098b 0x5194b 0x62cb5 0x63beb 0x55698 0x1700df9 0x1700ad0 0x1d9cbf5 0x1d9c962 0x1DDB6 0x1DCF4 0x1dcce1b 0x5117a 0x52ffc 0x2a0d 0x2935) libc++abi.dylib:terminate调用引发异常 (lldb)

我知道这和故事板中的子视图有关,但我不知道如何纠正这个错误。我对iOS还很陌生,正在努力自学,因此非常感谢您的帮助。非常感谢

添加:

[self.view layoutIfNeeded];
到该方法的结尾

- (void)viewDidLayoutSubviews

在您的
BannerViewController中

考虑使用
[self.view layoutifneed]
而不是
布局子视图
(根据文档,不应直接调用这些视图)。这仍然可以解决需要重新布局的问题。如果需要,需要调用布局的原因是什么?是不是因为调用viewDidLayoutSubviews后才设置子视图?只有在iOS 7上使用Xcode 6为iOS 8和7设计应用程序时,我才会遇到这种情况,并覆盖viewDidLayoutSubviews。我知道在iOS 8上,视图生命周期的顺序发生了一些变化,但这只是发生在我使用iOS 8 SDK或iOS 7应用程序时。。。iOS 7无法在第一次“viewDidLayoutSubviews”调用结束时正确布局视图,在重写方法中修改内容后,您必须重新布局视图我想知道在方法结束时调用[super viewDidLayoutSubviews]是否会导致无限递归iOS 9.2