FXBlurView
- 场景是banner中三张图片 因为图片大小不一致 所以加一个模糊 参考FXBlurView属性、一个模糊(毛玻璃)效果引发的探索、iOS实现模糊效果的几种方法
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSInteger)index reusingView:(UIView *)view
{
if (!view)
{
view = [[UIView alloc]initWithFrame:carousel.frame];
UIImageView *bIV = [[UIImageView alloc]initWithFrame:carousel.frame];
[view addSubview:bIV];
bIV.contentMode = UIViewContentModeScaleAspectFill;
bIV.tag = 100;
FXBlurView * cview = [[FXBlurView alloc]initWithFrame:carousel.frame];
cview.tintColor = [UIColor clearColor];
cview.blurEnabled = YES;
cview.blurRadius = 10.0;
cview.dynamic = NO;
cview.tag = 101;
[view addSubview:cview];
UIImageView *tIV = [[UIImageView alloc]initWithFrame:carousel.frame];
[view addSubview:tIV];
tIV.contentMode = UIViewContentModeScaleAspectFit;
tIV.tag = 102;
}
UIImageView *bIV = [view viewWithTag:100];
FXBlurView *cview = [view viewWithTag:101];
UIImageView *tIV = [view viewWithTag:102];
[bIV sd_setImageWithURL:self.infoDetailModel.images[index].wppURL];
[tIV sd_setImageWithURL:self.infoDetailModel.images[index].wppURL];
return view;
}
blurEnabled:是否开启模糊 默认YES
blurRadius:越大越模糊 默认40 太模糊了 一般设置小点10即可
tintColor:这在一个可选的色调颜色应用于FXBlurView。颜色的RGB分量将混合模糊图像,导致温和的色彩。不同色彩的强度效应,使用光明或黑暗的颜色。对tintColor透明度(alpha)的设置会被忽略。如果您不希望应用色彩,将这个值设置为零或(用户界面颜色clearColor]。请注意,如果您正在使用Xcode 5以上,FXBlurViews接口中创建默认构建器将有一个蓝色的色调
dynamic:必须设置NO 不然太卡了,默认是YES。这个属性控制是否FXBlurView更新动态,或者只有一次当视图添加到它的父视图。默认值为YES。注意,如果动态设置为不,你仍然可以迫使视图更新通过调用setNeedsDisplay或updateAsynchronously:completion:完成。动态模糊极其cpu密集型任务,因此你应该禁用动态视图立即执行一个动画之前,以避免卡顿。然而,如果你有多个FXBlurViews屏幕上那么简单的禁用更新使用setUpdatesDisabled方法而不是设置动态属性。
iterations:没有用到,模糊迭代的数量。更多的迭代改进了但质量降低了性能。默认为2的迭代
updateInterval:没有用到,这个控件之间的时间间隔(以秒为单位)连续更新当FXBlurView在动态模式下操作。这个默认为0,这意味着FXBlurView将尽快更新。这收益最好的帧速率,但也很耗CPU, 这可能导致应用程序的其他性能降低,尤其是在旧设备。要实现这一点,试着增加updateInterval的数值。
- 如果非常想要fxblurview 可以提前下载好背景图片image对象 赋值完成后 将fxblurView放上去 这样不会卡了
- 不能这样 也会卡
//[self.bgIV sd_setImageWithURL:detailModel.data.header_background_image.wppURL placeholderImage:[UIImage getPNGimageInBundleWithName:kPlaceHoldRectangle] completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
//[self fxblurView];
//}];
系统方法UIVisualEffectView
UIVisualEffectView *view = [[UIVisualEffectView alloc]initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]];
[self.bgIV addSubview:view];
view.frame = CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>);
-
UIVisualEffectView
是iOS8的新特性,该控件主要用于为原有的控件增加模糊效果。 - UIVisualEffectView继承自UIView,没有继承UIControl,所以只能做静态控件使用。
- 控制UIVisualEffectView控件模糊效果的属性时effect只读属性,该属性的类型是UIVisualEffect,该类型有两个子类:UIBlurEffect和UIVibrancyEffect。
- UIBlurEffect允许应用程序中动态的创建实时的模糊效果;UIVibrancyEffect允许在模糊效果上“写字”。
- Blur Style有三种效果:
- UIBlurEffectStyleLight:白色的模糊效果。
- UIBlurEffectStyleExtraLight:极亮的白色模糊效果。
- UIBlurEffectStyleDark:暗色的模糊效果。
网友评论