Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.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
Ios 跳过隐藏视图的布局U视图_Ios_Objective C_Autolayout - Fatal编程技术网

Ios 跳过隐藏视图的布局U视图

Ios 跳过隐藏视图的布局U视图,ios,objective-c,autolayout,Ios,Objective C,Autolayout,由于我正在开发一个应用程序的设计器,我不得不将很多东西塞进一个视图控制器中。我想我可以通过不打电话来减轻CPU的压力,节省时间 [super layoutSubviews]; 关于隐藏视图和be视图,我指的是UIView的一个子类,它包含所有其他内容,并且只在视图出现之前刷新它。如果这对你们中的一些人很重要,我可以通过设置BOOL标志来实现。这在iOS8上运行良好,但在iOS7上应用程序崩溃,原因是: Terminating app due to uncaught exception 'NSI

由于我正在开发一个应用程序的设计器,我不得不将很多东西塞进一个视图控制器中。我想我可以通过不打电话来减轻CPU的压力,节省时间

[super layoutSubviews];
关于隐藏视图和be视图,我指的是UIView的一个子类,它包含所有其他内容,并且只在视图出现之前刷新它。如果这对你们中的一些人很重要,我可以通过设置BOOL标志来实现。这在iOS8上运行良好,但在iOS7上应用程序崩溃,原因是:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. XXX's implementation of -layoutSubviews needs to call super.'
那么,我怎样才能跳过调用iOS7上的layoutsubview呢


当然,有可能我完全不了解iOS是如何工作的,跳过这个调用不会节省任何时间,因为它会计算约束。在这种情况下,问题是“如何跳过计算隐藏视图的约束?”。

如果您正在放弃iOS 7支持,iOS 8将通过active属性添加禁用和启用约束的功能。但是,如果您需要支持iOS 7,您唯一的选择是从视图层次结构中删除视图和/或约束,并在再次需要时恢复它们


但是您确定-layoutSubviews会导致速度减慢吗?在尝试优化它之前,您应该在Instruments中运行类似于时间分析器的程序,以确保这确实是问题所在。

不幸的是,我需要支持iOS7。嗯,它现在并没有导致速度减慢,但它仍处于开发的早期阶段,将会有更多的东西,我知道,随着要布局的东西越来越多,自动布局会变得越来越慢。也许我只是有点偏执,太渴望了,但当系统浪费一些时间计算不必要的事情时,我就错了:P哦,但那很遗憾,如果没有人给你提供矛盾的答案,我会在下周某个时候接受。