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];
 }];

第二 - 你为什么使用 autoRelease 而不是释放?

[theView release];

第三 - 只为你不知道的 w meeter。使用 ARC它会让你的生活更轻松。你可以在这里阅读更多ARC 教程

于 2012-10-15T10:20:23.700 回答