我有一张地图。在这张地图上,我想画一个小模糊的圆圈。我已经实现了类似这样的东西:
UIVisualEffect *visualEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
self.visualEffectView = [[UIVisualEffectView alloc] initWithEffect:visualEffect];
[self addSubview:self.visualEffectView];
然后在layoutSubviews
中:
[self.visualEffectView setFrame:CGRectMake(0.f, 0.f, 20.f, 20.f];
现在的问题是将这个视图变成圆形。我已经尝试过:
[self.visualEffectView.layer setCornerRadius:10.f];
然而没有任何反应。另一种尝试是基于(参考SOF问题):
CAShapeLayer *mask = [CAShapeLayer layer];
mask.path = [UIBezierPath bezierPathWithOvalInRect:self.visualEffectView.bounds].CGPath;
self.visualEffectView.layer.mask = mask;
但是在这种情况下,visualEffectView
是圆形的,但是没有模糊效果 :/。有什么方法可以让它正常工作吗?
另外:我尝试过使用FXBlurView
,但它的工作速度非常慢,我不能接受我的应用程序在iPhone 5上加载地图和模糊效果需要 ~1分钟。