Posted at

UIVisualEffectView(UIBlurEffect)が効かない時


画像をぼかして表示したい

iOS8以降のOSでは(今現在ではさすがにもう全部そうだという認識で良いと思いますが)UIBlurEffectというぼかしが利用できます。UIVisualEffectViewにセットして画像に重ねると雰囲気おしゃれになります。

使い方はたくさん記事があるので各自調べてください。


みんなできてるのに何故か自分だけできない

とても簡単に実装できるっぽいので実装して実機で試してみると、Blurを掛けた部分が真っ白になる。自分の目が悪いだけで実はうっすらボケているのか?

いや、さすがにコントラストの強い画像をおいてみたけど何も見えないのはおかしい。

EffectをかけたViewをどかすとちゃんと画像は設定されている。

バグか何かと思って調べまくったのですが、実はこれには実機の設定が関連しているようです。(iOS開発者には常識なのか…?)

設定 > 一般 > アクセシビリティ > 透明度を下げる

をオンにしているとボカした画像は一切表示されず、真っ白(.darkの場合グレー?)になるようです。

なので、ぼかしが効いて見えている事を前提にしてしまうと人によっては意図しない表示になっているので開発者は注意が必要です。(というか自分がそうだったせいでめっちゃ悩まされたんだけども。)

罠やん :thinking: