ios - 等待动画在 iOS 中完成?

标签 ios objective-c animation

<分区>

我想在动画结束后执行doSomethingElse。另一个限制是动画代码可以有不同的持续时间。我怎样才能做到这一点?谢谢!

-(void) doAnimationThenSomethingElse {
  [self doAnimation];
  [self doSomethingElse];
}

这个例子是行不通的:

animationDuration = 1;
[UIView animateWithDuration:animationDuration
    animations:^{
      [self doAnimation];
    } completion:^(BOOL finished) {
      [self doSomethingElse];
    }
];

最佳答案

当您不是动画的作者时,您可以通过使用事务完成 block 在动画结束时获得回调:

[CATransaction setCompletionBlock:^{
     // doSomethingElse
}];
// doSomething

关于ios - 等待动画在 iOS 中完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16367997/

相关文章:

ios - 当应用程序进入后台状态时重复调用 layoutSubviews

objective-c - 随时访问在另一个 View Controller 中创建的对象

ios - Swift - 如果语句不能正常工作

ios - 将 XML 文件中的链接加载到 UIWebView(SIGABRT 错误)

objective-c - 调用 -retainCount 被认为是有害的

algorithm - 卡兹马兹动画

javascript - 动画理论(自然动画)

javascript - JS不加载

ios - XCODE SWIFT 如何在按下按钮后执行代码,但在另一个文件/类中?

ios - Xamarin iOS,使用 MVVMCross 绑定(bind) "Enable property"