0

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

ビューのアルファも変更しようとしましたが、まだ何もありません。

何か案は?

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 に答える