基本思路如下:
1.创建一个继承自UIImageVIew的类,自定义初始化方法
2.内部使用UIVisualEffectView来添加模糊效果,控制模糊程度
3.可以通过枚举值控制模糊效果,用透明度alpha来控制模糊程度
UIBlurEffectStyleExtraLight,
UIBlurEffectStyleLight,
UIBlurEffectStyleDark
4.关键的一点:要打开UIImageView的用户交互否则该模糊视图可能会影响其他控件的用户交互
使用方法大家一看便知,不再赘述
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.userInteractionEnabled = YES;
//设置图片
self.image = [UIImage imageNamed:@"blur.jpg"];
//创建模糊视图
UIVisualEffectView *backVisual = [[UIVisualEffectView alloc]initWithEffect:[UIBlurEffect effectWithStyle: UIBlurEffectStyleDark]];
//将模糊视图的大小等同于自身
backVisual.frame = self.bounds;
//设置模糊视图的透明度
backVisual.alpha = 1;
[self addSubview:backVisual];
}
return self;
}