iOS7之后,在iPhone上到處都可以見(jiàn)到模糊視圖,并且在2014WWDC上蘋果也放開(kāi)了 關(guān)于模糊視圖的API,感覺(jué)又是有必要來(lái)學(xué)一學(xué),在這里就學(xué)習(xí)和總結(jié)一下。
使用步驟
1.創(chuàng)建一個(gè) UIVisualEffectView,選擇適合的虛擬效果,并且設(shè)置它的Position&Size
2.在 “contentView” 屬性上添加 想要顯示在VisualEffectView上的子視圖,如按鈕,圖片之類的。
3.給自己選擇合適自己的父視圖,addSubview:VisualEffectView
探索:
利用Reveal視圖分析工具可以看出 “UIVisualEffectView” 有三個(gè)子視圖:
UIVisualEffectBackdropView;
UIVisualEffectFilterView; (模糊作用的地方)
UIVisualEffectContentView;(子視圖添加到地方)
注意點(diǎn)
1.任何子視圖必須添加到 UIVisualEffectView 的contentView屬性上,而不是直接 UIVisualEffectView addSubViews;
2.使用 UIVisualEffectView 避免 設(shè)置透明度少于 1.0, 否則會(huì)使自己和父視圖”顯示不正常甚至不顯示”。
3.使用遮罩(Masks),可以為其效果視圖的contentView上,但給其效果視圖的父視圖添加遮罩會(huì)使效果失去作用,并且”Crash”.
4.在使用VisualEffectView 使用快照時(shí)必須捕捉 整個(gè)屏幕或者窗口使得Effect可見(jiàn)。
創(chuàng)建一般模糊視圖的代碼如下:
UIVisualEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight];
UIVisualEffectView *vew = [[UIVisualEffectView alloc]initWithEffect:blur];
view.frame = self.view.bounds;
view.center =imgeView.center;
[view.contentView addSubview:button];
[self.view addSubview:?iew];