SwiftUIではコンポーネントにblurをかけることが簡単になっている。
これはUIKitではできないものかと。
CALayerには古くからfilterというプロパティがある (たしかmacOSではCIFilterが使えたんだっけ?)
iOSではCAFilterというオブジェクトが利用されているようだがそれはprivate-api
Is CAFilter still a private API?
しかし、SwiftUIでblurや明るさ調整など、明らかにフィルターが担当することを呼び出せること、そして、それらをUIKitとCoreAnimationという資産の上で基本は成り立っているSwiftUIということからCALayer.filtersが使われていると推測。
RevealでBlurをかけたコンポーネントのアドレスを取得し、LLDBから覗いてみる。
(lldb) po [(CALayer*)0x600003cb0cc0 filters]
<Swift.__SwiftDeferredNSArray 0x600003cb0d00>(
colorBrightness,
gaussianBlur
)
やはり。