これは特定のコードを参照しているわけではありませんが、レイヤーにシャドウが追加された UIView がある場合、インターフェイスの向きの間を回転するときのアニメーションがはるかに遅れたり途切れたりすることに気付きました。
この問題に気づいた人、または回避策を見つけた人はいますか?
これは特定のコードを参照しているわけではありませんが、レイヤーにシャドウが追加された UIView がある場合、インターフェイスの向きの間を回転するときのアニメーションがはるかに遅れたり途切れたりすることに気付きました。
この問題に気づいた人、または回避策を見つけた人はいますか?
シャドウを使用する場合、 のshadowPath
プロパティによりCALayer
、特に新しい iPad では、パフォーマンスに非常に (!) 顕著な違いが生じます。ディスプレイの向きを変更するときに影を無効にすることは良い考えだと思いますが、使用するだけでも試してみる価値があるかもしれshadowPath
ません (まだ使用していない場合)。パスは任意の有効なにすることができますCGPathRef
が、ほとんどの場合、これが必要です。
self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.layer.bounds].CGPath;
CPU時間の点で非常に高価なものがあります。インストゥルメントでチェックしてみてください。
それは包括的なリストではありません。勾配もあると思います。
UIViewController
これらがアニメーションや再描画を劣化させていることがわかった場合は、メソッドでそれらを切り替える必要があります。
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
//disable shadows + expensive drawing
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
//enable shadows + expensive drawing
}