ios – PresentViewController的性能降低 – 取决于presenting控制器的复杂性?

ios – PresentViewController的性能降低 – 取决于presenting控制器的复杂性?,第1张

概述我正在呈现一个视图控制器: SCAAboutController2 *controller = [[SCAAboutController2 alloc] initWithNibName:nil bundle:nil];UINavigationController *navController = [[UINavigationController alloc] initWithRootViewCo 我正在呈现一个视图控制器:
SCAAboutController2 *controller = [[SCAAboutController2 alloc] initWithNibname:nil bundle:nil];UINavigationController *navController = [[UINavigationController alloc] initWithRootVIEwController:controller];[self presentVIEwController:navController animated:YES completion:nil];

设备挂起3-4秒才能显示.我试图使用仪器来诊断这个问题,但是似乎大部分时间都是用在主 –

这是相同的配置文件,但是系统库不被隐藏:

这些消息都不能被我识别,所以我不知道如何开始调试我的性能问题.

我在其他地方阅读,我应该检查主代码是否在主线程上执行.但是,以下变化并没有改善:

dispatch_async(dispatch_get_main_queue(),^{        SCAAboutController2 *controller = [[SCAAboutController2 alloc] initWithNibname:nil bundle:nil];        UINavigationController *navController = [[UINavigationController alloc] initWithRootVIEwController:controller];        [self presentVIEwController:navController animated:YES completion:nil];    });

我很快就用完了如何进步的想法.我如何进一步调查和/或可能是缓慢介绍的根本原因?

编辑

一些令人困惑的发现:

>我已经删除了所提供的视图控制器中的所有代码.表现不受影响.
>我有另一个控制器,我通过不同的按钮从同一个地方出现.同样慢
>呈现控制器具有相当多的子视图和约束 – 甚至一些子视图控制器.删除填充这些代码的代码解决了这个问题.
>在呈现控制器的vIEwWilldisappear中没有添加任何内容.

编辑2

我发现这些问题围绕着我在主(提供)控制器中添加的一系列布局限制.具体来说,我循环访问一些子控制器(类型为teamController)并添加约束:

[self.browser addConstraint:[NSLayoutConstraint constraintWithItem:teamController.vIEw                                                         attribute:NSLayoutAttributeWIDth                                                         relatedBy:NSLayoutRelationEqual                                                            toItem:self.browser                                                         attribute:NSLayoutAttributeWIDth                                                        multiplIEr:1                                                          constant:0]];

只有10个儿童控制器.也奇怪的是:如果我使用以下代码,我没有这样的问题:

[self.browser.contentVIEw addConstraint:[NSLayoutConstraint constraintWithItem:teamController.vIEw                                                                     attribute:NSLayoutAttributeWIDth                                                                     relatedBy:NSLayoutRelationEqual                                                                        toItem:nil                                                                     attribute:NSLayoutAttributeNotAnAttribute                                                                    multiplIEr:1                                                                      constant:200]];

我仍然非常困惑,为什么这些限制会导致另一种模式的呈现,以及为什么约束的一个变体与另一个的行为截然不同.

解决方法 不知道这是原作者的问题,但这里是为我解决了类似的问题:我正在尝试从dIDSelectRowAtIndexPath中提供一个视图,之前我必须调用deselectRowAtIndexPath.如果这可能会帮助某人… 总结

以上是内存溢出为你收集整理的ios – PresentViewController的性能降低 – 取决于presenting控制器的复杂性?全部内容,希望文章能够帮你解决ios – PresentViewController的性能降低 – 取决于presenting控制器的复杂性?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1111262.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存