• IOS实现毛玻璃效果的三种方式


    方式一:UIToolBar实现毛玻璃特效

    在iOS7.0(包括)之前还是有系统的类可以实现毛玻璃效果的, 就是 UIToolbar这个类,并且使用相当简单,几行代码就可以搞定.

     1  /*
     2      毛玻璃的样式(枚举)
     3      UIBarStyleDefault          = 0,
     4      UIBarStyleBlack            = 1,
     5      UIBarStyleBlackOpaque      = 1, // Deprecated. Use UIBarStyleBlack
     6      UIBarStyleBlackTranslucent = 2, // Deprecated. Use UIBarStyleBlack and set the translucent property to YES
     7     */
     8     UIImageView *bgImgView = [[UIImageView alloc] initWithFrame:self.view.bounds];
     9     bgImgView.image = [UIImage imageNamed:@"huoying4.jpg"];
    10     [self.view addSubview:bgImgView];
    11     
    12     UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, bgImgView.frame.size.width*0.5, bgImgView.frame.size.height)];
    13     toolbar.barStyle = UIBarStyleBlackTranslucent;
    14     [bgImgView addSubview:toolbar];

    方式二:UIBlurEffect实现毛玻璃特效

    在iOS8.0之后,苹果新增了一个类UIVisualEffectView,通过这个类来实现毛玻璃效果与上面的UIToolbar一样,而且效率也非常之高,使用也是非常简单,几行代码搞定. UIVisualEffectView是一个抽象类,不能直接使用,需通过它下面的三个子类来实现(UIBlurEffect, UIVisualEffevt, UIVisualEffectView)。

    子类UIBlurEffect只有一个类方法,用来快速创建一个毛玻璃效果,参数是一个枚举,用来设置毛玻璃的样式。

     1     UIImageView *bgImgView = [[UIImageView alloc] initWithFrame:self.view.bounds];
     2     bgImgView.image = [UIImage imageNamed:@"huoying4.jpg"];
     3     bgImgView.contentMode = UIViewContentModeScaleAspectFill;
     4     //[bgImgView setImageToBlur: [UIImage imageNamed:@"huoying4.jpg"] blurRadius:20 completionBlock:nil];
     5     bgImgView.userInteractionEnabled = YES;
     6     [self.view addSubview:bgImgView];
     7     
     8     /*
     9      毛玻璃的样式(枚举)
    10      UIBlurEffectStyleExtraLight,
    11      UIBlurEffectStyleLight,
    12      UIBlurEffectStyleDark
    13      */
    14     UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
    15     UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:effect];
    16     effectView.frame = CGRectMake(0, 0, bgImgView.frame.size.width*0.5, bgImgView.frame.size.height);
    17     [bgImgView addSubview:effectView];

    方式三:高斯模糊处理实现毛玻璃效果

    这种方法是我比较推荐的方法,利用高斯模糊处理可以很方便的做出毛玻璃特效。

    1   UIImageView *bgImgView = [[UIImageView alloc] initWithFrame:self.view.bounds];
    2   //bgImgView.image = [UIImage imageNamed:@"huoying4.jpg"];
    3   bgImgView.contentMode = UIViewContentModeScaleAspectFill;
    4   // 对背景图片进行毛玻璃效果处理 参数blurRadius默认是20,可指定,最后一个参数block回调可以为nil
    5   [bgImgView setImageToBlur: [UIImage imageNamed:@"huoying4.jpg"] blurRadius:20 completionBlock:nil];
    6   bgImgView.userInteractionEnabled = YES;
    7   [self.view addSubview:bgImgView];
  • 相关阅读:
    存储过程在程序慢而在Management Studio快的原因
    死锁原因的排查
    sql基线建立-知识准备
    SQL Server DBA工作内容详解
    待建立的索引及要删除的索引
    执行计划缓存
    sql基线建立-步骤
    统计信息
    sql server 复制,镜像,日志传输及故障转移集群区别
    1185炮兵阵地
  • 原文地址:https://www.cnblogs.com/my-garden/p/6036013.html
Copyright © 2020-2023  润新知