ios毛玻璃效果實現(xiàn)

毛玻璃的實現(xiàn)一般要用到以下幾個類:

  • UIBlurEffect
  • UIVibrancyEffect
  • UIVisualEffectView

1割去、第一種毛玻璃效果


-(void)VisualEffectView{

    //先生成圖片背景

    UIImageView *blurImag = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

    blurImag.image= [UIImageimageNamed:@"homePage2"];

    [self.viewaddSubview:blurImag];


    UILabel*blurLabel = [[UILabelalloc]initWithFrame:CGRectMake(30,60,self.view.frame.size.width-60,300)];

    blurLabel.text = @"Our mind is sponge, our heart is stream.";

    /** 設置blurLabel的最大行數(shù). */

    blurLabel.numberOfLines=2;

    /** 設置blurLabel的字體顏色. */

    blurLabel.textColor= [UIColorwhiteColor];

    /** 設置blurLabel的字體為系統(tǒng)粗體, 字體大小為34. */

    blurLabel.font= [UIFontboldSystemFontOfSize:34];


    /** 創(chuàng)建UIBlurEffect類的對象blur, 參數(shù)以UIBlurEffectStyleLight為例. */

    UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];

    /** 創(chuàng)建UIVisualEffectView的對象visualView, 以blur為參數(shù). */

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

    /** 將visualView的大小等于blurImageView的大小. (visualView的大小可以自行設定, 它的大小決定了顯示毛玻璃效果區(qū)域的大小.) */

    visualView.frame= blurImag.bounds;


    visualView.alpha=1;

    /** 將visualView添加到blurImageView上. */

    [blurImag addSubview:visualView];

    [visualView.contentView addSubview:blurLabel];

}

Simulator Screen Shot - iPhone 8 - 2018-05-08 at 13.51.24.png

2、第二種效果

-(void)VisualEffectView2{
    /** 1. 創(chuàng)建UIImageView的對象vibrancyImageView. */
    UIImageView *vibrancyImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 2*self.view.frame.size.width, self.view.frame.size.height)];
    
    UIImage *image = [UIImage imageNamed:@"homePage2"];
    
    /**
     * 在UIVibrancyEffect這種類型的毛玻璃中, 蘋果官方API對UIImageView的image屬性的渲染方式做出了要求:
     *      UIImageView will need its image to have a rendering mode of UIImageRenderingModeAlwaysTemplate to receive the proper effect.
     *
     * UIImageView的屬性imgae的渲染方式要選擇UIImageRenderingModeAlwaysTemplate, 會獲得更好的效果.
     */
    
    /**
     * 給UIImage類的對象設置渲染方式的方法: - (UIImage * nonnull)imageWithRenderingMode:(UIImageRenderingMode)renderingMode
     * 參數(shù)renderingMode: typedef enum : NSInteger {
     UIImageRenderingModeAutomatic,
     UIImageRenderingModeAlwaysOriginal,
     UIImageRenderingModeAlwaysTemplate,
     information
     } UIImageRenderingMode;
     */
    [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
    
    vibrancyImageView.image = image;
    
    vibrancyImageView.userInteractionEnabled = YES;
    
    [self.view addSubview:vibrancyImageView];
    
    /** 2. 創(chuàng)建UILable的對象. */
    UILabel *vibrancyLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 60, self.view.frame.size.width - 20, 300)];
    
    vibrancyLabel.text = @"Our mind is a sponge, our heart is a stream.";
    
    vibrancyLabel.numberOfLines = 2;
    
    vibrancyLabel.textColor = [UIColor whiteColor];
    
    vibrancyLabel.font = [UIFont boldSystemFontOfSize:34];
    
    
    
    UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
    /**
     * 在上面我們提到過UIVisualEffectView類的類方法里的參數(shù)effect有兩種類型:UIBlurEffect和UIVibrancyEffect.
     * 在這里我們創(chuàng)建UIVibrancyEffect類型的UIvisualEffectView;
     */
    
    /**
     * UIVibrancyEffect有兩種創(chuàng)建方法, 在這里我們使用: + (UIVibrancyEffect *)effectForBlurEffect:(UIBlurEffect *)blurEffect
     *
     * 我們可以看出類方法中的參數(shù)類型是UIBlurEffect類型, 所以之前創(chuàng)建了一個UIBlurEffect的對象.
     */
    UIVibrancyEffect *vibrancy = [UIVibrancyEffect effectForBlurEffect:blur];
    
    /** 下面的步驟同上. */
    UIVisualEffectView * visualView = [[UIVisualEffectView alloc] initWithEffect:vibrancy];
    
    visualView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
    
    visualView.alpha = 1;
    
    [vibrancyImageView addSubview:visualView];
    
    [visualView.contentView addSubview:vibrancyLabel];
}
Simulator Screen Shot - iPhone 8 - 2018-05-08 at 13.50.27.png
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子棍鳖,更是在濱河造成了極大的恐慌,老刑警劉巖术辐,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異施无,居然都是意外死亡辉词,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門猾骡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瑞躺,“玉大人,你說我怎么就攤上這事兴想〈鄙冢” “怎么了?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵嫂便,是天一觀的道長捞镰。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么岸售? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任践樱,我火速辦了婚禮,結果婚禮上凸丸,老公的妹妹穿的比我還像新娘拷邢。我一直安慰自己,他們只是感情好屎慢,可當我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布瞭稼。 她就那樣靜靜地躺著,像睡著了一般腻惠。 火紅的嫁衣襯著肌膚如雪环肘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天妖枚,我揣著相機與錄音廷臼,去河邊找鬼苍在。 笑死绝页,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的寂恬。 我是一名探鬼主播续誉,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼初肉!你這毒婦竟也來了酷鸦?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤牙咏,失蹤者是張志新(化名)和其女友劉穎臼隔,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妄壶,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡摔握,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丁寄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氨淌。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖伊磺,靈堂內(nèi)的尸體忽然破棺而出盛正,到底是詐尸還是另有隱情,我是刑警寧澤屑埋,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布豪筝,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏壤蚜。R本人自食惡果不足惜即寡,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望袜刷。 院中可真熱鬧聪富,春花似錦、人聲如沸著蟹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萧豆。三九已至奸披,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涮雷,已是汗流浹背阵面。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留洪鸭,地道東北人样刷。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像览爵,于是被迫代替她去往敵國和親置鼻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容