再次调用 addsubview 导致速度变慢

Posted

技术标签:

【中文标题】再次调用 addsubview 导致速度变慢【英文标题】:Call addsubview again causes slowdown 【发布时间】:2010-05-08 06:59:10 【问题描述】:

我正在为 iphone 写一个小音乐游戏。我快完成了,这是唯一让我无法推出它的问题。非常感谢任何解决此问题的帮助。

这就是我所做的: 在我的 appDelegate 中,我将菜单视图屏幕添加到窗口中。 menu-view-screen 充当容器并控制向用户呈现哪个视图。

意味着,在菜单视图屏幕上,我有 4 个按钮(新游戏、选项、常见问题解答、高分)。 当用户点击按钮时会发生这种情况:

 if (self.gameViewController == nil)
 
  GameViewController *viewController = [[GameViewController alloc] initWithNibName:@"GameViewController" bundle:nil];
  self.gameViewController = viewController;
  [viewController release];
 
 [self.view addSubview:self.gameViewController.view];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleSwitchViewNotificationFromGameView:) name:@"SwitchView" object:gameViewController];

当用户返回菜单时,这段代码被执行:

 [[NSNotificationCenter defaultCenter] removeObserver:self];
 [self.gameViewController viewWillDisappear:YES];
 [self.gameViewController.view removeFromSuperview];

这适用于所有屏幕,但不适用于游戏屏幕(这是唯一具有大量用户交互的屏幕) 意味着 iphone 的响应速度(播放音调时)变得非常缓慢。 当我第一次显示游戏视图时,性能很好。一旦我再次将它添加到 menu-views-container-subviews (addsubview)(基本上打开一个新游戏),它就会开始变慢 任何想法是什么导致(或解决)这个?

谢谢大家

最好的问候 汤姆

【问题讨论】:

【参考方案1】:

好吧,这听起来不像是控制器问题。这听起来像是其他东西正在运行或占用内存的问题。我建议使用分析工具来查看是否可以确定 CPU 消失的位置。例如,您可能有对象的内存泄漏,这些对象也在做很多事情。

【讨论】:

以上是关于再次调用 addsubview 导致速度变慢的主要内容,如果未能解决你的问题,请参考以下文章

java如果很多用户同时访问一个服务器会导致速度变慢。应怎么解决?求高手帮忙。急!!

单实例,当MongoDB单表数据文件太大导致写入速度变慢

由于网线存在问题导致PPPOE用户上网速度变慢

由于不同的病毒扫描程序,Microsoft Visual Studio 的速度变慢

TensorFlow迭代速度变慢的问题

集成Admob后,我的Libgdx游戏速度变慢