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)有高斯模糊效果。