【发布时间】:2015-03-01 19:49:37
【问题描述】:
我有一张地图。在地图上,我想画一个小而模糊的圆圈。我已经实现了这样的东西:
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 question):
CAShapeLayer *mask = [CAShapeLayer layer];
mask.path = [UIBezierPath bezierPathWithOvalInRect:self.visualEffectView.bounds].CGPath;
self.visualEffectView.layer.mask = mask;
但在这种情况下,visualEffectView 是圆形的,但不会模糊:/。有什么办法让它工作吗?
顺便说一句:我已经尝试过FXBlurView,但是它的运行速度非常慢,我不能接受我的应用在 iPhone 5 上仅加载地图 + 模糊约 1 分钟。
【问题讨论】:
标签: ios objective-c blur uivisualeffectview