这是最快的方法来模糊视图-因为对于我的视图(UICollectionView of images),它太慢了,无法实现良好的用户体验-任何关于性能改进的建议,更好的方法?
我尝试改变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;
}
你可能想在StackOverflow上看看这个
如果这不能满足您的需要,请尝试调用函数
- (UIImage*)blurViewToImage:(UIView *)view type:(int)type
在一个单独的线程中,所以你的UI保持可用:
[self performSelectorInBackground:(SEL) withObject:(id)]