1

在一个 uiviewimage 的动画完成后,触发一个事件来为主动画制作动画。ViewDidLoad() 具有主要的动画逻辑。加载后,屏幕上会出现一个动画圈。

屏幕上有一个按钮,它会触发另一个动画,持续时间仅为 6 秒。

我想要一种逻辑和方法,可以运行之前的动画。

在我看来,可以通过回调或线程来完成吗?

请给出您的建议作为答案,如果您建议回调方法,一段代码将是完美的。

4

3 回答 3

2

这是 Omar Johari 的示例,转换为 MonoTouch:

UIView.Animate(0.6, 0d, UIViewAnimationOptions.CurveEaseOut, 
               () => {
                      // Animations here
               }, 
               () => {
                      // After animation completes
               });
于 2012-11-14T07:20:10.030 回答
1
[UIView animateWithDuration:0.6f
                      delay:0.0f
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                     // Do your animations here.
                 }
                 completion:^(BOOL finished){
                     if (finished) {
                         // Do your method here after your animation.
                     }
                 }];

如果你使用块你可以允许在动画完成后调用你想要的任何东西。

于 2012-11-13T08:20:48.560 回答
1

尝试做这样的事情。

为您的主屏幕动画制作一个功能

       -(void)mainScreenAnimation
       {
          // do ur code here
       }

现在,当使用按钮触发动画时,将这样的内容添加到按钮事件中

   -(IBAction)btnPressed:(id)sender
   {
        // try implementing a timer which starts after 6seconds and the selector of the timer should be @selector(mainAnimationScreen)

         timer=  [NSTimer scheduledTimerWithTimeInterval:6.0 target:self selector:@selector(mainAnimationScreen) userInfo:nil repeats:NO];

     // if u want to repeat the animation then use this

       timer=  [NSTimer scheduledTimerWithTimeInterval:6.0 target:self selector:@selector(mainAnimationScreen) userInfo:nil repeats:YES];

   }
于 2012-11-13T08:29:40.247 回答