我可以取消 CATransaction 完成块吗?

Posted

技术标签:

【中文标题】我可以取消 CATransaction 完成块吗?【英文标题】:Can I cancel the CATransaction completionBlock? 【发布时间】:2014-05-23 19:00:01 【问题描述】:

在 CATransaction 中,我有以下代码:

[CATransaction setCompletionBlock:^
    ...do something ....
];

动画运行大约半秒。如果类逻辑中发生其他一些事件,我希望能够取消完成块...

有没有办法阻止这个块在动画开始后运行?

【问题讨论】:

你找到这个问题的答案了吗? @JoshGafni 不,我已经改变了我的课堂逻辑来解决这个问题。 谢谢!似乎是苹果应该添加的功能。 【参考方案1】:

尝试添加一些逻辑来检查其他事件的状态。是这样的:

[CATransaction setCompletionBlock:^
    if(some other events happen)
       return;
    
];

【讨论】:

以上是关于我可以取消 CATransaction 完成块吗?的主要内容,如果未能解决你的问题,请参考以下文章

CATransaction 完成块成功或失败

将动画添加到子视图时立即调用 CATransaction 完成块

CATransaction 完成块永远不会触发

iOS 在调用完成块之前会在 viewDidDisappear 之后等待 CATransaction

我可以在 UITextField 中选择特定的文本块吗?

我可以在 osmdroid 中使用 Google 地图图块吗?