iOS活动指示器
我试图创建活动指示器,currentView将是静态的,nextView将从左到右、从右到左、从上到下和从下到上设置动画 我已经编写了如下代码。我面临的问题是,我得到的不是全部四个动画,而是一个从上到下的动画。有谁能帮我一个接一个地运行所有四个动画,直到完成一个过程iOS活动指示器,ios,objective-c,catransition,Ios,Objective C,Catransition,我试图创建活动指示器,currentView将是静态的,nextView将从左到右、从右到左、从上到下和从下到上设置动画 我已经编写了如下代码。我面临的问题是,我得到的不是全部四个动画,而是一个从上到下的动画。有谁能帮我一个接一个地运行所有四个动画,直到完成一个过程 statusImage = [UIImage imageNamed:@"image2.png"]; moveImage = [UIImage imageNamed:@"image1.png"]; currentView = [[U
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"];
有谁能帮我一个接一个地运行所有四个动画,直到完成一个过程
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"];
一个层一次只能有一个过渡动画。为过渡动画提供关键点没有意义。关键始终是kCATransition
。你的string1
等毫无意义;只需使用nil
。此外,你的代码毫无意义;附加到层的多个动画会导致同时(如果可能)执行这些动画,而不是连续执行
您需要链接动画。按如下方式设置代码:
- 执行第一个动画,给它一个完成处理程序。第一个动画完成时调用此完成处理程序
- 在完成处理程序中,执行第二个动画,给它一个完成处理程序。当第二个动画完成时,将调用此完成处理程序
- 在完成处理程序中,执行第三个动画,给它一个完成处理程序。当第三个动画完成时,将调用此完成处理程序
- 在完成处理程序中,执行第四个动画
委托
。好的,我会检查你是否真的只是在重复你先前的问题。(你没有接受任何回答。)我还注意到你问错了问题;你不断地对如何做到这一点做出假设,而不仅仅是描述期望的效果并询问如何做到这一点。