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 allocinitWithEffect: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里,否則將不起任何作用。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM