iOS10以降のUIImageViewではcornerRadiusによるオフスクリーンレンダリングは行われない

先日PotatotipsでiOSのCorner Rounding Strategyという発表がされたようです。リンク先のスライドによるとCALayerのcornerRadiusを利用するとオフスクリーンレンダリングが発生してパフォーマンスが低下するとのことです。私が担当しているアプリでもcornerRadiusを利用していたはずなので、調査してみようと思います。貴重な発表ありがとうございます。

ただし例外があるようです。Off-screen rendering in IOS performance optimizationによるとiOS10.0以降ではUIImageViewにcornerRadiusを設定してもオフスクリーンレンダリングはおこなわれないということです。実際にInstrumentsで検証したところ、iOS9ではオフスクリーンレンダリングが行われましたが、iOS10とiOS11では行われませんでした。shadowやラスタライズを設定すると行われました。

このことがすなわちパフォーマンスが低下しないことにつながるかは分かりませんが、iOS10以降のcornerRadiusによる単純な角丸UIImageViewでは少なくともオフスクリーンレンダリングの心配はないと言えるようです。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.