ios - iPad性能问题

标签 ios xcode ipad xamarin.ios

我的 iPad 应用程序的性能有这个问题..

对于开发,我使用负责垃圾收集的 MonoDevelop。我会说,我的问题仍然相当笼统。

好的,我将 TabBarController 与 5 个 NavigationController 一起使用。在导航 Controller 内部有一些 Controller ,它们的 View 是 TableViews 或 ScrollViews。下一个 child 总是只是常规 View 。

我有几个问题:

1) TableViews 从不平滑滚动。我有一些 alpha 透明度,但由于我是在 Photoshop 中而不是以编程方式制作图形,因此这种透明度不会造成太大问题。表中的结果是少是多都没关系。
另一方面,我有 ScrollView 用于相同目的,即成为具有不同布局的表格,按钮也具有 Photoshop 生成的透明度。它完美地工作。

对于我申请的表 DequeueReusableCell()效果很好(我看到滚动后内存使用量没有增加)。那么为什么表格会滚动得如此生涩?

2)我的应用程序支持旋转。当我滚动表格或 ScrollView 并同时稍微倾斜设备时,我可能会得到 1 或 2 FPS。实现轮换的最佳方式是什么?据我了解,ShouldAutorotateToInterfaceOrientation必须在 NavigationController 链中的所有 Controller 中被覆盖。另外,我需要在 View 中添加观察者,我希望发生一些变化。我必须使用 BeginGeneratingDeviceOrientationNotifications()在所有 View 中还是在 Main.cs 中就足够了?也许这会减慢速度?

3)一段时间后,应用程序开始收到内存警告,然后最终崩溃。我尝试使用 Instruments 读取日志并运行应用程序,但找不到崩溃的原因。

4) 从 NavigationController 堆栈弹出的 View 到底发生了什么?我不能重复使用它。但会不会是 Monotouch(或我)没有正确处理它?

我有几乎相同的 iPhone 应用程序,不支持永远不会崩溃的旋转。我想我在这个轮换中做错了什么,但我不确定是什么。

任何帮助将不胜感激。所以,提前谢谢你。

问候

最佳答案

1 - 透明胶片总是一个问题。即使您没有在代码中渲染图像,手机仍然需要对图像进行合成,这可能需要很多时间。每次显示新单元格或滚动表格时,UITableViews 都必须计算最终的合成图像,而 UIScrollViews 只能计算一次,因为图像不会改变。所以要非常小心,关闭透明度,并检查性能是否有所提高。

2 - 您不需要通知应用程序中的每个 uiview。在您只想更新的 Controller 中接收通知,例如,如果您想重新排列 UIViewControllers View 中的项目。

3 - 您有一个(或多个)内存泄漏。我的猜测是 MonoTouch 可能无法垃圾收集 UIView 或 UIViewController,因为它们仍然从 UIKit 中的某个位置链接,例如 UINavigationController

4 - 在应用程序收到内存警告通知之前,UIKit 不会释放 UIView。

关于ios - iPad性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7662754/

相关文章:

swift firebase 获取关注者 uid,然后获取他们的详细信息

xcode - 如何让物体无限旋转

iphone - 在 Flash 上运行 iOS 应用程序

android - 读取目录 : how do I know if it is a file or directory

ios - 通过 vtable 调度比散列表更快,但如果在任何地方使用会消耗大量内存

objective-c - 如何停止核心动画?

iphone - NSNotificationCenter 一个帖子导致观察者被调用两次

iphone - 如何在 iOS 应用程序中显示和编辑现有的 PDF 文件

ios - 需要一些建议来学习 OCR 相关技术

ios - UIViewController 中的隐藏 subview