0

UIViewがあり、アニメーション化しています。ここで重要なのは、theViewアニメーション化されたらリリースする必要があるということです。

originalRECT = [[UIScreen mainScreen] bounds];

if(theView)
{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.3];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

    theView setFrame = originalRECT;

    [UIView commitAnimations];
    [theView autorelease];
    theView = nil;
}

したがって、コードがtheViewをnilに設定していることはわかっていますが、アニメーションdoes finish ok(SIGABRTなどはありません)
または、ビューが消えたことを知るために使用できるコールバック関数はありますか?この場合、どうすればそのような関数を使用できますか?

ありがとう!

4

1 に答える 1

1

いくつかのこと-

まず第一に、あなたが使用できることを確認したい場合:

[UIView animateWithDuration:1.0 
                  delay:0.0 
                options:UIViewAnimationCurveEaseInOut 
             animations:^ {
                 //your animation
                  theView setFrame = originalRECT;
             } 
             completion:^(BOOL finished) {
                 //Animation finished you can release
                 [theView release];
 }];

2番目-なぜautoReleaseを使用し、リリースしないのですか?

[theView release];

第三に-あなたが知らないwミーターのためだけに。ARCを使用すると、生活が少し楽になります。あなたはここでARCチュートリアルをもっと読むことができます

于 2012-10-15T10:20:23.700 に答える