1. ホーム
  2. ios

[解決済み] iOS 7スタイルのぼかし表示

2022-10-23 21:10:39

質問

iOS7スタイルのblur viewを再現するコントロールをご存知の方はいらっしゃいますか?

私は、動作を複製する何らかの UIView のサブクラスが存在する可能性があると仮定しています。

背景を極端に厚くぼかして、背景ビューからのプルエフェクトを持つ、このタイプのビューについて話しているのです。

どのように解決するのですか?

Bin Zhang氏のようなものを修正することができるかもしれません。 RWBlurPopover のようなものを改造してこれを行うことができるかもしれません。このコンポーネントでは、私の GPUImage を使用して、その下のコンポーネントにガウス ブラーを適用していますが、同じように CIGaussianBlur を使用して簡単に行うことができます。GPUImageは の方が速いかもしれません。 .

このコンポーネントは、表示しているビューの背後にあるビューをキャプチャできることに依存しており、このコンテンツの背後でアニメーションするビューで問題が発生する可能性があります。背景のビューをラスタライズするために Core Graphics を経由する必要があるため、処理速度が遅くなり、おそらく、アニメーションするビューのオーバーレイのためのパフォーマンス高い方法でこれを行うことができる十分な直接アクセスがありません。

上記の更新として、私は最近 GPUImage のブラーを作り直して可変半径をサポートし、iOS 7 のコントロール センター ビューのブラー サイズの完全な再現を可能にしました。そこから、Appleがここで使用していると思われる適切なブラーサイズと色補正をカプセル化したGPUImageiOS7BlurFilterクラスを作成しました。GPUImageのブラー(右)とビルトインのブラー(左)を比較すると、このようになります。

4倍のダウンサンプリング・アップサンプリングでガウスぼかしのピクセル数を減らしているので、iPhone 4Sではこの操作で約30ミリ秒で画面全体にぼかしをかけることができます。

このブラーの背後にあるビューからこのブラーにコンテンツをどのようにパフォーマンスよく引き込むかという課題が残っています。