UIVisualEffectView毛玻璃效果

App設(shè)計(jì)時(shí)往往會(huì)用到一些模糊效果或者毛玻璃效果

// UIBlurEffectStyleExtraLight,//額外亮度,(高亮風(fēng)格)

// UIBlurEffectStyleLight,//亮風(fēng)格

// UIBlurEffectStyleDark//暗風(fēng)格

// 第一個(gè)UIBlurEffect是用來(lái)進(jìn)行設(shè)置毛玻璃的效果

UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];

// 第二個(gè)類是毛玻璃的視圖

UIVibrancyEffect的作用是放大和調(diào)整UIVisualEffectView內(nèi)容視圖的內(nèi)容的顏色,讓UIVisualEffectView的contentView中的內(nèi)容看起來(lái)更加生動(dòng)。它作為一個(gè)子視圖被放置在UIVisualEffectView上面,去連接UIBlurEffect。這種效果只會(huì)影響添加到UIVisualEffectView的contentView上的內(nèi)容。因?yàn)榛盍τ绊懯鞘茴伾蕾嚨?....

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

/*注:盡量避免將UIVisualEffectView對(duì)象的alpha值設(shè)置為小于1.0的值,

 因?yàn)閯?chuàng)建半透明的視圖會(huì)導(dǎo)致系統(tǒng)在離屏渲染時(shí)去對(duì)UIVisualEffectView對(duì)象

 及所有的相關(guān)的子視圖做混合操作。這不但消耗CPU/GPU,也可能會(huì)導(dǎo)致許多效果

 顯示不正確或者根本不顯示。*/

// 盡量給毛玻璃設(shè)置透明度

vis.alpha = 0.9;

vis.frame = CGRectMake(0, 0, self.icon.bounds.size.width, self.icon.bounds.size.height);

self.vis = vis;

[self.icon addSubview:vis];

如果想在xib中直接放一個(gè)UIVisualEffectView,則工程的deployment target需要8.0以上,否則會(huì)報(bào)錯(cuò)編譯不過(guò)。

但是在xib中放置UIToolbar并且通過(guò)代碼設(shè)置相關(guān)屬性以實(shí)現(xiàn)高斯模糊,工程的deployment target只要是5.0以上都可以編譯通過(guò),只不過(guò)在iOS7版本之前設(shè)備上沒(méi)有高斯模糊效果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容