Instrumentsは、コアアニメーションによってアニメーション化される「ずれた画像」があることを示しています。どういう意味ですか?
更新:Instruments.app>CoreAnimationでそれを見ました。
Instrumentsは、コアアニメーションによってアニメーション化される「ずれた画像」があることを示しています。どういう意味ですか?
更新:Instruments.app>CoreAnimationでそれを見ました。
あなたがこれを見ている場所についてもっと知りたいのですが、私の疑いは、それがピクセル整列されていない画像を参照しているということです。Quartzを使用すると、小数のピクセルで描画できます(CGPointはNSIntegerではなくCGFloatsを使用することを思い出してください)が、コストが高く、少しぼやける傾向があります。分数のピクセルを実際に描画することはできないため、Quartzはアンチエイリアシングを実行してそれを実行する必要があります。それには時間がかかり、確かにCoreAnimationのパフォーマンスに悪影響を及ぼします。
Quartzは、分数ピクセルで描画していることを警告しません。特にテキストには不親切です。したがって、プログラムによるレイアウトを行うときはいつでも、それについて考える必要があります。
ビューの位置がずれていると、レンダラーは描画される前にアンチエイリアスに強制されます。
このコンテキストでは、「不整合」とは、要求された表示ポイントが画面のピクセルに直接マップされないことを意味します(たとえば、2つのピクセルの間にある可能性があります)。したがって、2つの隣接するピクセルに描画し、アンチエイリアスを使用して錯覚を与える必要があります。それらの「間に」描かれたこと。
これは、CGRectのX座標、Y座標、幅、および高さがCGFloatであり、したがって小数値を許可するため、ビューのフレームが(Interface Builderで指定されるのではなく)計算されるときにほとんど常に発生します。
たとえば、(200.5、35.5)を中心とする100.8px x 50.1pxのボックスは有効なフレームであり、OSはそれを管理できる最高の状態でレンダリングしようとします。単一のピクセルに必要な追加の補間とアンチエイリアシングのオーバーヘッドは、古いハードウェアのパフォーマンスを著しく損なうのに十分です。