美文网首页
iOS-模糊效果

iOS-模糊效果

作者: 守护地中海的花 | 来源:发表于2019-09-26 07:25 被阅读0次

    FXBlurView

    - (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:暗色的模糊效果。

    CoreImage滤镜效果、vlImage、GPUImage

    相关文章

      网友评论

          本文标题:iOS-模糊效果

          本文链接:https://www.haomeiwen.com/subject/mphkuctx.html