StoryBoardだけで簡単すりガラス効果【iOS8〜】

iOS8から背後に描画されているViewに対して、エフェクトをかけてくれるUIVisualEffectViewが導入されました。

UIVisualEffectViewに適用できるフェクとは、UIBlurEffectとUIVibrancyEffectになります。

UIVisualEffectViewはコードではもちろんのこと、StoryBoardでも設置可能です。

まずは、エフェクトをかける対象をセットしておきます。

base

次にVisualEffectViewのオブジェクトをStoryBoardに貼付けて下さい

SelectObject

エフェクトのタイプはBlur StyleからExtra Light / Light / Dark の3種類が選択できます

BlurType

オリジナル画像と、各タイプのエフェクトを施した結果は以下のようになります。

エフェクト無し
BlurOriginal

 

 

 

 

 

 

 

エフェクト有り(Extra Light)
BlurExtraLight

 

 

 

 

 

 

 

エフェクト有り(Light)
BlurLight

 

 

 

 

 

 

 

エフェクト有り(Dark)
BlurDark

 

 

 

 

 

 

 

次にもう一つ用意されているVisualEffectを使いましょう

VibrancyObject

こちらは、BlurEffectとVibrancyEffectがセットになったObjectです。

StoryBoard上に配置すると、以下の階層で構成されています。

Vibrancyエフェクトの対象となるビューは、VibrancyEffectView配下の

Viewのサブビュートしてセットしてください。

VibrancyEffectObject

 

オリジナル画像にラベルを貼付けた物と、Vibrancyエフェクトを施したラベルを比べると以下のようになります。

オリジナル(Vibrancyラベルは別パーツです)

VibrancyNo

Vibrancy有り(Blur:Extra Light)

VibrancyExtraLight

Vibrancy有り(Blur:Light)

VibrancyLight

Vibrancy有り(Blur:Dark)

VibrancyDark

【VibrancyEffect使用時の注意事項】

  • UIVisualEffectViewの Blur Style 同じ設定にしておく必要がありそうです。
  • Autolayoutが有効な状態で、親の方のUIVisualEffectViewのサイズを変更すると、子のUIVisualEffectViewのサイズが0になっていますので、そのまま実行しても、VibrancyEffectのビューが表示されないので、適切なサイズに設定するか、適切なAutolayout設定をする必要があります。

 

この記事を書いた人

なかの
なかの
アプリ開発チームで、iOSエンジニアやってます。         *'``・* 。         |     `*。        ,。∩      *           + (´・ω・`) *。+゚       `*。 ヽ、  つ *゚*        `・+。*・' ゚⊃ +゚        ☆   ∪~ 。*゚         `・+。*・ ゚
Pocket