アラのアラアラしい日記

こっそりかいてます

UIBlurEffectが動かない時の対処法

忘備録です。

SwiftでBlur効果を加えたい場合、よく使われるのがUIVisualEffectViewでエフェクトをUIBlurEffectに指定する方法です。

let blurEffectView = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.regular))

UIBlurEffect - UIKit | Apple Developer Documentation

しかしこの方法で実装する場合、Blur効果が表れない場合があります。

Settings > General > Accessibility > Reduce Transparency

この設定をONにした場合、UIBlurEffectは無効になります。

端末の消費電力を抑える為の設定だと思われますが、全体的な端末の見た目や動作もこの設定でかなり変わります。

色々調べていたら設定に関係なくBlurを入れられるライブラリを見つけました。

github.com

このライブラリでユーザがReduce TransparencyをONにしている場合でもBlurの挿入が可能です。

基本的にユーザが許可していない機能は入れるべきではないと思いますが、修正中のアプリでは背景をトラッキングする必要がない為利用しました。Eventbrideのような大きなサービスでもこの方法を利用しているようです。(小声)

端末の設定周りでハマることが多かった月でした。おしまい!