提高模糊性能 iOS7/8
Posted
技术标签:
【中文标题】提高模糊性能 iOS7/8【英文标题】:Improve Blur Performance iOS7/8 【发布时间】:2014-07-24 14:58:28 【问题描述】:这是模糊视图的最快方法吗?因为对于我的视图(图像的 UICollectionView)来说,它对于良好的用户体验来说太慢了——关于性能改进的任何提示,更好的方法?
我尝试更改 BeginImageContext 方法(第三个变量)的比例,但性能几乎没有变化。
(import category on UIImage from Apple)
#UIImage+ImageEffects.h
- (UIImage*)blurViewToImage:(UIView *)view type:(int)type
//0 -dark
//1 -light
//2 -extra light
UIGraphicsBeginImageContextWithOptions(view.frame.size, true, 0.0f);
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:false];
UIImage * snappy = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
switch (type)
case 0:
return [snappy applyDarkEffect];
break;
case 1:
return [snappy applyLightEffect];
break;
case 2:
return [snappy applyExtraLightEffect];
break;
default:
break;
return nil;
【问题讨论】:
【参考方案1】:你可能想看看this on ***
如果这不适合您的需要,请尝试调用该函数
- (UIImage*)blurViewToImage:(UIView *)view type:(int)type
在单独的线程中,因此您的 UI 保持可用:
[self performSelectorInBackground:(SEL) withObject:(id)]
【讨论】:
谢谢 - 我通常会在后台线程上运行它,但它会花费更长的时间,而且背景可以改变但在用户调用它时是静态的,所以我也无法预加载图像.有趣的是,最好的解决方案是把 UIToolbar 变成背景。至少在 ios8 中我们得到了更多的力量。以上是关于提高模糊性能 iOS7/8的主要内容,如果未能解决你的问题,请参考以下文章