ビューのレイヤープロパティを設定することにより、いくつかの遅延の問題の修正を見てきました
view.layer.shouldRasterize = YES;
UICollectionViewを使用してセルを準備し、プロパティを設定すると、パフォーマンスに大きな違いが見られました。
その意味がわからない。
説明を得るのは素晴らしいことです。ありがとう!
WWDC 2012 Polishing Your Interface Rotations video(有料の開発者サブスクリプションが必要)で、彼らはレイヤーのラスタライズの利点と意味について話しています。このビデオは別のトピック(興味深いトピック)ですが、ラスタライズとスナップショットの長所と短所について話します(ビデオの約8分から開始し、UIView
階層とプレゼンテーションの関係についての背景を説明します)ツリー、レンダーツリー、そしてビデオのさらに6分でラスタライズの説明に飛び込みます)。
一番下の行は、アニメーション化するビューが複雑である(つまり、再レンダリングに比較的費用がかかる)が、アニメーション化されたビュー自体は変わらない場合、レイヤーをラスタライズすると、常にレイヤーを再レンダリングしないため、パフォーマンスが向上します。ただし、メモリを犠牲にしてこれを行います(メモリにラスタライズされた画像を保存します)。
ただし、レイヤー内の変更をアニメーション化すると、shouldRasterize
がパフォーマンスに悪影響を与える可能性があります(アニメーションの各フレームでレイヤーを再ラスタライズするため)。
一般に、変化しないレイヤーの複雑なセットをアニメーション化する場合は、shouldRasterize
をYES
に設定し、アニメーションを実行してから、shouldRasterize
をオフにすることができます。