誰かがこの質問に対する答えを知っているかどうか疑問に思っていました-レイヤーを隠しすぎることに関連するコストはありますか.
たとえば、レイヤーが既に非表示になっている場合、layer.hidden = YES を何度も呼び出すと、単に呼び出しスタックをステップスルーするよりもオーバーヘッドが増えるでしょうか? Cocoa は、レイヤーが既に非表示になっていることを認識できるほどスマートですか?
- (void) drawRect:(CGRect)rect
{
if ( characterLeftFlag ) {
characterLeftView.layer.hidden = NO;
characterRightView.layer.hidden = YES;
}
else {
characterLeftView.layer.hidden = YES;
characterRightView.layer.hidden = NO;
}
}
または、レイヤーの可視性が変更されたかどうかを常に確認してから、hidden を呼び出す必要がありますか?
- (void) drawRect:(CGRect)rect
{
if ( characterLeftFlag && characterLeftView.layer.hidden ) {
characterLeftView.layer.hidden = NO;
characterRightView.layer.hidden = YES;
}
else if ( characterRightFlag && characterRightView.layer.hidden ) {
characterLeftView.layer.hidden = YES;
characterRightView.layer.hidden = NO;
}
}
最初のパターンでは、条件ステートメントのクロージャーが許可されます。これにより、コーディングの実践が向上しますが、余分なスタック呼び出しが発生します。2 番目のパターンは、より明示的ですが、条件ステートメントが失敗します。
ありがとう、ブライアン