在动画中移动它时隐藏UIView

时间:2013-02-04 22:24:00

标签: ios xcode

我有一些使用beginAnimations进行旋转的动画。 我想要隐藏有问题的UIview,当然我尝试更改隐藏属性但没有发生任何事情。 这是代码

 CGAffineTransform rotation = CGAffineTransformMakeRotation( angelToRotate(-90));
[UIView beginAnimations: @"" context: NULL];
self.view.hidden = TRUE;
[UIView setAnimationDuration: 0.4];
self.view.transform = CGAffineTransformConcat(self.view.transform, rotation);
self.view.hidden = FALSE;
[UIView commitAnimations];

我也尝试在视图上更改alpha,但仍然没有。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

CGAffineTransform rotation = CGAffineTransformMakeRotation( angelToRotate(-90));   
[UIView animateWithDuration:0.4 animations:^
{
    self.view.transform = CGAffineTransformConcat(self.view.transform, rotation);
    self.view.alpha = 0.0;
}
completion:^(BOOL finished)
{
    self.view.alpha = 1.0;
}];

或者:


CGAffineTransform rotation = CGAffineTransformMakeRotation( angelToRotate(-90));
[UIView beginAnimations:nil context: NULL];
[UIView setAnimationDuration:0.4];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
self.view.transform = CGAffineTransformConcat(self.view.transform, rotation);
self.view.alpha = 0.0;
[UIView commitAnimations];

- (void) animationDidStop: (NSString *) animationID finished: (NSNumber *) finished context: (void *) context
{
    self.view.alpha = 1.0;
}

答案 1 :(得分:0)

作为开始尝试取走self.view.hidden = TRUE 如果我正确地得到你的代码,动画应该消失并在.4秒后重新出现?

隐藏和显示相同的功能不会那样。

您可以调用另一个专门执行self.view.hidden = FALSE

的函数