我有一个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;
}
所以我知道代码将View设置为nil,但是动画does finish ok
(没有SIGABRT或类似的东西)
或者是否有一个回调函数我可以用来知道视图消失了?在这种情况下如何使用这样的函数?
谢谢!
答案 0 :(得分: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];
第三 - 只是因为你不知道。 使用ARC 它会让您的生活更轻松。您可以在此处阅读更多内容ARC tutorial