ios8 毛玻璃效果(UIVisualEffectView)

首先有这样4个类

UIVisualEffect

UIBlurEffect

UIVibrancyEffect

UIVisualEffectView

继承关系

UIVisualEffect : NSObject

 |—> UIBlurEffect

 |—> UIVibrancyEffect

UIVisualEffectView : UIView

来自百度翻译(这样是学不好编程的)

Visual

视觉的(视力的);

Blur

n. 污迹,污斑;   模糊不清的事物;   暧昧不明;

vt.& vi. 涂污,弄脏;   (使)变模糊,(使)难以区分;

Effec

n. 影响;   效果;   印象;   所有物;

vt. 使发生;   引起;   产生(效果);

Vibrancy

n. 振动;   振响;   活跃;   活力;

初始化

typedef NS_ENUM(NSInteger, UIBlurEffectStyle) {
UIBlurEffectStyleExtraLight,//高亮的风格
UIBlurEffectStyleLight,//亮化的风格
UIBlurEffectStyleDark//暗化的风格
} ;

UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];

UIVisualEffectView *vise = [[UIVisualEffectView alloc] initWithEffect:blur];

 然后这样

    UIImageView * view = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    UIImage * img = [UIImage imageNamed:@"1.jpg"];
    UIVisualEffectView * effectView = [[UIVisualEffectView alloc]initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight]];
    //设置虚化度
    effectView.alpha=1.0;
    effectView.frame=CGRectMake(0, 0, self.view.frame.size.width, 200);
    view.image=img;
    [view addSubview:effectView];
    [self.view addSubview:view];

结果是这样(现在还没有文字呢,后面的代码中会有)

还有一种样式

注意文字,这里是这样初始化的

1.

    UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];

    UIVibrancyEffect *vibrancy = [UIVibrancyEffect effectForBlurEffect:blur];

    UIVisualEffectView *vise = [[UIVisualEffectView alloc] initWithEffect:vibrancy];

2. 你需要把标签添加到 contentView 上

[vise.contentView addSubview:lab];

UIBlurEffect是对整个背景进行虚化,UIVibrancyEffect是对添加的标签等附件进行背景虚化。注意,这些附件,必须加在UIVisualEffectView的contentView里,否则将不起任何作用。

时间: 2024-11-03 05:32:11

ios8 毛玻璃效果(UIVisualEffectView)的相关文章

iOS8 模糊视图(毛玻璃效果) UIVisualEffectView

在需要模糊的UIView上,添加一个UIVisualEffectView对象即可,若直接在storyboad里面直接加UIVisualEffectView,你的项目必须是iOS8以上才能用 - (void)viewDidLoad { [super viewDidLoad]; //    UIImageView *imageview = [[UIImageView alloc] init]; // //    imageview.frame = CGRectMake(10, 200, 300, 3

iOS7 iOS8 毛玻璃效果的分别实现

iOS8用系统的, iOS7用第三方的(效果还是挺快的.) https://github.com/KiranPatel-iOS/KPBlurEffect [_headBGIV sd_setImageWithURL:headIVURL completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) { if (IOS8_OR_LATER) { UIBlurEffect *blur =

ios8 毛玻璃效果

UIBlurEffect * blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];    UIVisualEffectView * effe = [[UIVisualEffectView alloc]initWithEffect:blur]; http://www.ithao123.cn/content-8310026.html

ios8新特性之毛玻璃效果

直接上代码 UIView *myView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; myView.backgroundColor = [UIColor redColor]; [self.view addSubview:myView]; //承载毛玻璃的底面 UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; /

IOS8模糊毛玻璃的效果UIVisualEffectView

UIVisualEffectView实现两种模糊效果:UIBlurEffect 和 UIVibrancyEffect 两者都是继承自UIView,前者放在任意的View里边都能对下册的视图渲染出模糊效果,后者是在前者的基础上对毛玻璃效果上层的视图做出高亮突出处理 代码如下: @IBOutlet weak var imageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() var blurEffect = UI

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

方式一:UIToolBar实现毛玻璃特效 在iOS7.0(包括)之前还是有系统的类可以实现毛玻璃效果的, 就是 UIToolbar这个类,并且使用相当简单,几行代码就可以搞定. 1 /* 2 毛玻璃的样式(枚举) 3 UIBarStyleDefault = 0, 4 UIBarStyleBlack = 1, 5 UIBarStyleBlackOpaque = 1, // Deprecated. Use UIBarStyleBlack 6 UIBarStyleBlackTranslucent =

iOS开发探索-高斯模糊&毛玻璃效果

iOS开发中有的时候需要将图片设置模糊,来实现特定的效果获取更好的用户体验, iOS7之后半透明模糊效果得到大范围使用的比较大,现在也可以看到很多应用局部用到了图片模糊效果,可以通过高斯模糊和毛玻璃效果达到图片模糊效果. 左边玻璃右边模糊 高斯模糊效果 1. CoreImage: iOS5.0之后就出现了Core Image的API,Core Image的API被放在CoreImage.framework库中, 在iOS和OS X平台上,Core Image都提供了大量的滤镜(Filter),在

iOS - 毛玻璃效果

iOS - 毛玻璃效果 iOS8之后苹果提供了制作毛玻璃效果的API 就是这个UIVisualEffectView,用这个initWithEffect:去初始化,然后呢,他有两种效果继承自UIVisualEffect.这个父类不用管,什么也不做,主要看他的两个子类UIBlurEffect和UIVibrancyEffect. UIBlurEffect : 这个是影响毛玻璃后面视图的 效果图: UIVibrancyEffect : 这个是影响毛玻璃上的视图的 是不是很漂亮,做起来也不难呢. 先说毛玻

UI05_ 制造一个毛玻璃效果

首先,先创建一个UIImageView的对象. 注意, 本文已将ARC改为MRC. UIImageView *imageview = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"222.jpg"]]; imageview.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); [self.view addSu