Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS活动指示器_Ios_Objective C_Catransition - Fatal编程技术网

iOS活动指示器

iOS活动指示器,ios,objective-c,catransition,Ios,Objective C,Catransition,我试图创建活动指示器,currentView将是静态的,nextView将从左到右、从右到左、从上到下和从下到上设置动画 我已经编写了如下代码。我面临的问题是,我得到的不是全部四个动画,而是一个从上到下的动画。有谁能帮我一个接一个地运行所有四个动画,直到完成一个过程 statusImage = [UIImage imageNamed:@"image2.png"]; moveImage = [UIImage imageNamed:@"image1.png"]; currentView = [[U

我试图创建活动指示器,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"];
有谁能帮我一个接一个地运行所有四个动画,直到完成一个过程

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
。此外,你的代码毫无意义;附加到层的多个动画会导致同时(如果可能)执行这些动画,而不是连续执行

您需要链接动画。按如下方式设置代码:

  • 执行第一个动画,给它一个完成处理程序。第一个动画完成时调用此完成处理程序

  • 在完成处理程序中,执行第二个动画,给它一个完成处理程序。当第二个动画完成时,将调用此完成处理程序

  • 在完成处理程序中,执行第三个动画,给它一个完成处理程序。当第三个动画完成时,将调用此完成处理程序

  • 在完成处理程序中,执行第四个动画


很抱歉,我不知道如何使用CATTransition的完成处理程序。您可以提供一个示例代码吗?您可以为动画指定一个代理。CATTransition是一个动画:看
委托
。好的,我会检查你是否真的只是在重复你先前的问题。(你没有接受任何回答。)我还注意到你问错了问题;你不断地对如何做到这一点做出假设,而不仅仅是描述期望的效果并询问如何做到这一点。