我有一张 map 。在 map 上,我想绘制一个模糊的小圆圈。我已经实现了这样的事情:
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];
现在的问题是使该 View 变圆。我试过了:
[self.visualEffectView.layer setCornerRadius:10.f];
但是什么也没发生。另一个尝试是(基于SOF question):
CAShapeLayer *mask = [CAShapeLayer layer];
mask.path = [UIBezierPath bezierPathWithOvalInRect:self.visualEffectView.bounds].CGPath;
self.visualEffectView.layer.mask = mask;
但是在这种情况下,
visualEffectView
是圆形的,但不会模糊:/。有什么办法可以使其正常工作?顺便说一句:我尝试了
FXBlurView
,但是它运行非常缓慢,我无法接受我的应用在iPhone 5上仅加载map + blur约1分钟。 最佳答案
自从最初的问题以来,事情显然已经发生了变化,但是我仅通过选择“Clip to Bounds”并在Visual Effect View本身的“User Defined Runtime Attributes”中设置“layer.cornerRadius”就可以实现。