- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个 View ,第一个是一个简单的 View ,其中包含一些有关用法的介绍,通过单击按钮可以打开主视图。主视图有很多图像和两个自定义的表格,行由文本和图像组成,因此主视图的创建相当慢。分析器显示大部分时间被 imageIO 消耗(decode_mcu、png_read_filter_row、pmap_copy_page 和 decompress_onepass)
我想通过在加载第一个 View 后立即创建主视图来进行优化,当我单击按钮时,它只是将该 View 设置为可见或将该 View 置于前面。
我尝试在第一个 View 的 viewDidLoad 中分配并初始化主视图
- (void)viewDidLoad
{
[super viewDidLoad];
rootVC = [[RootViewController alloc] initWithNibName:@"ViewController" bundle:nil];
rootVC.delegate = self;
}
并在按钮的操作方法中执行此操作
- (IBAction)buttonUp:(id)sender {
[self.view addSubview: rootVC.view];
}
但这不起作用,加载仍然需要很长时间。我怎样才能牺牲一些内存来获得更好的用户体验?
谢谢
狮子座
最佳答案
你应该:
使用 Instruments 查看代码在哪里花费最多时间,并在那里进行优化。可能不是你想象的那样。
如果您使用的是 UITableView,请了解如何按需创建 UITableViewCell(而不是预加载大量)并回收实例(而不是重新创建它们)。
仅当 Instruments 将此视为瓶颈时:尝试在后台队列中加载/解压缩图像,然后在加载后更新主队列上的 UIImageView(或其他内容)。
在 iOS 4.x 或更高版本中,您可以执行以下操作:
NSString *path = ...
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, NULL), ^{
// This is happening in the background thread.
UIImage *image = [UIImage imageWithContentsOfFile:path];
dispatch_async(dispatch_get_main_queue(), ^{
// This is happening on the main thread; all UI updates must happen here.
imageView.image = image;
});
});
附注顺便说一句,UIViewController 不会在创建时加载 View ,而是按需加载。因此,根据上面的代码,表达式 rootVC.view
可能会触发 View 加载。如果您想强制它提前加载,只需将 rootVC.view
放在其他地方即可。
关于iphone - 如何在后台查看 "prepare"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6282642/
我对 MySql 有疑问,详情如下:我创建了一个新的模式/数据库,(仅)执行了这个查询: create table mytable ( id varchar(50) not null, name va
我正面临着 continuum 的发布问题:准备阶段在 scm-check-modifications 步骤中失败并出现错误: [ERROR] org.apache.maven.shared.rele
由于我要连接到外部数据库,因此我需要一种仅在必要时(如果有查询)才连接到数据库的方法。 我在 StackOverflow 上找到了这个答案:Auto connecting to PDO only if
每次我尝试将中等大小的 JSON 对象同步到我的数据库时都会遇到这个问题,以便我们可以对其执行一些报告。通过调查可能导致它的原因,我发现了有关此事的这些链接。 http://blog.corrlabs
我有从多个表返回结果的 MySQL View , 我正在尝试从 laravel 项目的这个 View 中进行一些查询, 本地服务器没有问题 但在远程服务器上显示以下错误 "General error:
我重写了我的网站 php 代码并添加了 MySQL 存储过程。 在我的本地版本中,一切正常,但在我将网站上传到托管服务器后,我不断收到 fatal error “准备好的语句需要重新准备”。 有时页面
我重写了我的站点 php 代码并添加了 MySQL 存储过程。 在我的本地版本中,一切正常,但在我将我的网站上传到托管服务器后,我不断收到 fatal error “Prepared statemen
我重写了我的站点 php 代码并添加了 MySQL 存储过程。 在我的本地版本中,一切正常,但在我将我的网站上传到托管服务器后,我不断收到 fatal error “Prepared statemen
我在运行批处理作业时收到以下错误。 sql.SQLException: Prepared statement needs to be re-prepared 什么情况下会遇到此错误? 最佳答案 这是一
prepare for segue 和 prepare for unwind 之间有什么区别?我已经将这两个实现到 Xcode 项目中,它们都得到了相同的结果。我实现这两个功能的代码是:(with p
作为指南,用于准备测试数据库的命令是 bundle exec rake db:test:prepare 但是,我发现以下命令也有效并为我创建了测试数据库。 bundle exec rake test:
我最近启动了我的基于 Laravel 的网站,我没有遇到任何问题,但是 40 分钟前当我检查它时我得到了这个错误: SQLSTATE[HY000]: General error: 1615 Prepa
更新:查询工作正常,如下所示;当我从 View 中选择时,错误只会出现。 $query = " SELECT ModuleID, ModuleName, Credits, Lecturer, Room
我的laravel项目每天早上都会出错,一段时间后就没事了。我不明白这是什么问题。 我用谷歌搜索了一下,发现了一些类似的问题。但这并不能解决我的问题。 db version is 5.1.1 最佳答案
所以根据this link一个是快捷方式包装器(所以我猜它们是一样的)。 当我运行 bundle exec rake db:test:prepare 时,我得到了这个错误: Don't know ho
我有两个 View ,第一个是一个简单的 View ,其中包含一些有关用法的介绍,通过单击按钮可以打开主视图。主视图有很多图像和两个自定义的表格,行由文本和图像组成,因此主视图的创建相当慢。分析器显示
大约 10 天前,我向我的 iTunes Connect 帐户添加了两个应用程序。一个是“轻型”版本,另一个是收费的。完整版本已经在应用商店上架,但免费版本的状态只是“准备上传”。十天后!一定有什么问
我在运行 mvn release:prepare 时遇到问题。我有以下消息: [ERROR] Failed to execute goal org.apache.maven.plugins: mave
我正在 MainActivity 处理程序的帮助下更新进度条但它给出了错误:无法在未调用 Looper.prepare() 的线程内创建处理程序 Error public class MainActi
在我的 django 项目中,我有 4 个模型,它们都连接在一条链中。 模型_D > 模型_C > 模型_B > 模型_A 因此 Model_C 有一个指向 Model_B 的外键字段,而 Model
我是一名优秀的程序员,十分优秀!