0

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

 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,但仍然没有。

有任何想法吗?

4

2 回答 2

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;
}
于 2013-02-04T22:32:07.720 回答
0

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

在同一个功能上隐藏和显示不是这样工作的。

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

于 2013-02-04T22:27:55.680 回答