読者です 読者をやめる 読者になる 読者になる

オープンソースの曇りガラス風ビューをいろいろ試してみた

iOS Objective-C

iOS 7 といえばあの淡くぼけた曇りガラス風のビュー。
さっそく自分のアプリに取り入れたいと思っている方もいるかと思います。

そこで、今回は曇りガラス風のビューを簡単に使えるようにしてくれるオープンソースのライブラリを紹介したいと思います。

iOS-blur

iOS 7 の UIToolbar はもとから曇りガラス風のエフェクトがかかってるんだから、それをそのまま使えばええやん!
というのがこの iOS-blur です。

実装は簡単で、UIToolbar のレイヤーを盗んで使っているだけ。
一番手っ取り早い感じはしますが、iOSコンポーネントが裏で何をやってるのか分からないし、構造が変わると動かなくなるのであまり使いたくありません。

ArcticMinds / iOS-blur

REFrostedViewController

曇りガラス風のビューを使ったスライドするメニューです。
パンジェスチャーで閉じる機能も実装されているので、曇りガラス風ビューをメニューに使いたいならこれが一番良さそうです。
ちなみにビュー単体では使えません。

romaonthego / REFrostedViewController

ios-realtimeblur

単体で使用できる曇りガラス風ビューです。
名前の通りリアルタイムに動作しますし、スクロールビューの動きが悪くなることもないのですが、残念ながらかなりチラつきが見えます。

alexdrone / ios-realtimeblur

CFIFrostedOverlayView

GPUImageを使った曇りガラス風ビューです。
iOS, Mac どちらでも使えるとのことですが、ビルドがうまくいかず時間も無かったため試せていません。

CodaFi / CFIFrostedOverlayView

FXBlurView

単体で使用できる曇りガラス風ビューです。
ビューを別クラスのシングルトンオブジェクトで管理し、一定時間ごとに背景画像を更新する仕組みになっています。

nicklockwood / FXBlurView

CSNotificationView

曇りガラス風の通知ビューです。
良さそうだと思ったのですが、三年ながら iOS-blur と同じく UIToolbar のレイヤーを利用するものでした。

problame / CSNotificationView

どれを使えばいいのか

今のところオススメなのは FXBlurViewREFrostedViewController です。
他のものは用途に合わせて選べばいいのではないかと思います。

ブラーエフェクトのかけ方にもいろいろありますが、特に REFrostedViewController の方法は tintColor がいい感じに適応されていて良さそうでした。

はじめは GPUImage を使ったほうがいいのではと思っていましたが、GPUImage だとブラーエフェクトがあまり綺麗ではない感じがしたのでやめました。
僕の使い方が間違っていただけかもしれませんが…

ほか、ブラーエフェクトなど