我正在尝试从UIView创建图像以对其创建模糊效果。我正如此捕捉图像:
CGFloat scale = 1.0;
if([[UIScreen mainScreen]respondsToSelector:@selector(scale)]) {
CGFloat tmp = [[UIScreen mainScreen]scale];
if (tmp > 1.5) {
scale = 2.0;
}
}
UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, scale);
[[view layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return screenshot;
但是,在iOS 9中,renderInContext
步骤失败了。它给出了以下错误:
*** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'sublayer with non-finite position [-23 inf]'
所以,我有几个问题。
有谁知道为什么我在我的某个图层中遇到了一个inf位置?这只发生在iOS 9上,并且只发生在一个特定的场景中,而且我不确定这个场景与我们应用程序周围的其他场景有什么不同。
有什么方法可以解决这个问题并且仍然可以从视图中获取图像吗?我们需要半径为3的自定义模糊,因此使用VisualEffectView似乎无法工作。这让我想起......
有没有什么办法可以改变VisualEffectView模糊的半径?它只需要在iOS 9中工作,但默认半径对于我们所具有的特定模糊来说太模糊了,因此在不修改半径的情况下使用VisualEffectViews并不理想。
感谢您提供的任何帮助!