我尝试创建活动指示器,currentView将是静态的,nextView将从左到右,从右到左,从上到下,从下到上进行动画制作。
我编写了如下代码。我面临的问题是,我只获得了一个动画从上到下的动画,而不是所有四个动画。任何人都可以帮助我逐个运行所有四个动画,直到一个过程完成
statusImage = [UIImage imageNamed:@"image2.png"];
moveImage = [UIImage imageNamed:@"image1.png"];
currentView = [[UIImageView alloc]
initWithImage:statusImage];
nextView = [[UIImageView alloc]
initWithImage:moveImage];
//Add your custom activity indicator to your current view
[self.view addSubview:currentView];
[self.view addSubview:nextView];
CATransition *transition1 = [CATransition animation];
[transition1 setType:kCATransitionPush];
[transition1 setSubtype:kCATransitionFromLeft];
[transition1 setDuration:1];
[nextView.layer addAnimation:transition1 forKey:@"string1"];
CATransition *transition2 = [CATransition animation];
[transition2 setType:kCATransitionPush];
[transition2 setSubtype:kCATransitionFromRight];
[transition2 setDuration:1];
[nextView.layer addAnimation:transition2 forKey:@"string2"];
CATransition *transition3 = [CATransition animation];
[transition3 setType:kCATransitionPush];
[transition3 setSubtype:kCATransitionFromTop];
[transition3 setDuration:1];
[nextView.layer addAnimation:transition3 forKey:@"string3"];
CATransition *transition4 = [CATransition animation];
[transition4 setType:kCATransitionPush];
[transition4 setSubtype:kCATransitionFromBottom];
[transition4 setDuration:1];
[nextView.layer addAnimation:transition4 forKey:@"string4"];
答案 0 :(得分:0)
任何人都可以帮我一个接一个地运行所有四个动画,直到一个过程完成
一个图层一次只能有一个过渡动画。没有必要为过渡动画提供密钥。密钥永远是kCATransition
。你的string1
等毫无意义;只需使用nil
。而且,你的代码毫无意义;附加到图层的多个动画会导致这些动画同时执行 (如果可能),而不是连续执行。
您需要链接动画。像这样设置你的代码:
执行第一个动画,给它一个完成处理程序。第一个动画结束时调用此完成处理程序。
在完成处理程序中,执行第二个动画,为其提供完成处理程序。第二个动画结束时,将调用此完成处理程序。
在完成处理程序中,执行第三个动画,为其提供完成处理程序。第三个动画结束时调用此完成处理程序。
在完成处理程序中,执行第四个动画。