我正在制作一款包含2个UITableViewController的iOS应用, 按第一个 tableview单元格推送第二个表格视图, 转换 非常快(在/之间往返)两个tableviews)直到我在每个tableviews上使用此代码viewWillAppear方法:
UIImageView *imageV = [[UIImageView alloc] init];
UIImage *image = [[UIImage imageNamed:@"un.jpeg"] applyBlurWithRadius:50
tintColor:nil
saturationDeltaFactor:1
maskImage:nil];
imageV.image = image;
self.tableView.backgroundView = imageV;
现在转换大约需要2-3秒才能完成转换速度?
编辑1:使用Apple的UIImage + ImageEffects.h来模糊图像
编辑2(解决方案):
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
UIImageView *imageV = [[UIImageView alloc] init];
UIImage *image = [[UIImage imageNamed:@"un.jpeg"] applyBlurWithRadius:50
tintColor:nil
saturationDeltaFactor:1
maskImage:nil];
imageV.image = image;
self.tableView.backgroundView = imageV;
});
答案 0 :(得分:1)
最让你的应用速度减慢的当然不是图像,而是适用于它的模糊。
答案 1 :(得分:1)
我建议在后台线程上应用模糊,这样就不会减慢界面速度。您可能希望了解GPUImage以获得最大速度。
或者,在iOS 8中,只使用内置的UIBlurEffect。但当然这是一种不那么灵活的模糊。
答案 2 :(得分:0)
不设置图像本身,正在应用模糊。
图像越大,所需的时间越长。我不知道您使用哪种功能来模糊图像,但检查您是否可以使用GPU上的加速框架或核心图像来更快地执行操作。