UIVisualEffectViewを使ったblur効果が環境によって動かないぞ?と思ったら [UIVisualEffectView] [UIBlurEffect]
こんにちは。AppleTVが欲しいです。
こんなん見せられたらたまらんです。
今日は前回投稿した iOS8で追加されたUIVisualEffectViewを使ったBlur効果 の続きです。
前回どのようなことをやったのかについては以下を参照して下さい。
作成後ぶつかった問題
シミュレーターで動作確認 → 動く
実機(iPhone6)で動作確認 → 動かない
という現象が発生しました。
こんな感じになります(イメージ)↓
はじめは実装部分を疑い、表示Viewの順番を変えたり、EffectViewの作成方法を変えたりしましたが、解決に至らず。
あたまの中は「?」マークだらけでした。
解決に至ったきっかけ
以下のページを見たことでピンときました。
http://506506.ntt.com506506.ntt.com
"It seems like UIVisualEffectView is meant for toolbars and similar, " のところ。
「あ〜そうか。アノ設定に引っ張られているのかも」と思いましたね。
現象が発生する理由
ところで私のiPhone6はiOS9にアップデートしています。
そしてアップデート後、動作が重くなった感じ、色々設定を弄っています。
この時に変更した設定 [設定→一般→アクセシビリティ→コントラストを上げる→透明度を下げる] をONにしたことが、今回の環境による動作差異に現れているのではと疑いました。
以下はシミュレーターでの設定箇所です↓
一旦この設定をOFFに戻し、アプリを立ち上げ直して確認してみると、
想定通りのBlur効果がかかることが確認できました。
またシミュレーターで同設定をONにした場合、Blur効果がかからないことも確認しました。
Appleの立場にたってよく考えたら「そりゃそうか」ってところなんですが、画像編集アプリを作ろうと考えていた私にとっては、なかなかいい勉強となった次第です。
画像編集アプリなどのblur効果は恐らく違う方法をとってやってるんでしょうね。
また調査しなければいけないことが増えました!