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を入れられるライブラリを見つけました。
このライブラリでユーザがReduce TransparencyをONにしている場合でもBlurの挿入が可能です。
基本的にユーザが許可していない機能は入れるべきではないと思いますが、修正中のアプリでは背景をトラッキングする必要がない為利用しました。Eventbrideのような大きなサービスでもこの方法を利用しているようです。(小声)
端末の設定周りでハマることが多かった月でした。おしまい!