- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我提到了DOC它说:
completion
... This block has no return value and takes a single Boolean argument that indicates whether or not the animations actually finished before the completion handler was called. ...
但是我发现不管你是否使用bool参数,completion:
block 总是会在animations:
block 之后执行。就像下面显示的两个简单的基于 block 的动画代码片段一样,它们都在做同样的事情。
[UIView animateWithDuration:0.3f
delay:0.0f
options:UIViewAnimationCurveEaseInOut
animations:^{
[myView setAlpha:0.0f];
}
completion:^(BOOL finished) {
[myView removeFromSuperview];
}];
和
[UIView animateWithDuration:0.3f
delay:0.0f
options:UIViewAnimationCurveEaseInOut
animations:^{
[myView setAlpha:0.0f];
}
completion:^(BOOL finished) {
if (finished) [myView removeFromSuperview];
}];
而且我发现大多数人(包括我)都使用第一个(甚至是苹果的官方文档示例)。所以,
finished
参数究竟是什么?最佳答案
当动画被取消时,finished 参数将为 NO:通常,当您中断动画以开始另一个动画时(例如,您在当前动画结束之前开始了一个新动画,参数从当前状态)或者您直接取消了动画。
实际上这会取消当前动画,但仍会调用完成 block 。如果您正在链接一系列动画,您会希望该链停止,因此您只会继续前一个动画已完成的链。
举个例子,假设你有一个游戏,炸弹在屏幕上飞过。如果用户不点击炸弹,它会在到达边缘时爆炸。所以你会有一个动画来移动炸弹,你的完成 block 会有另一个动画来显示爆炸,也许会调用一些方法来降低分数或其他东西。
如果用户点击炸弹,您将取消移动动画并让炸弹无害地飞走。您的原始完成 block 仍将执行,因此您需要知道动画是自行完成还是被取消。
关于iphone - bool 参数在 animateWithDuration :animations:completion: 中究竟做了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8686922/
Feel free to skip straight to TL/DR if you're not interested in details of the question 简短的序言: 我最近决定
我一直在阅读 A Tour of Go学习Go-Lang到目前为止一切顺利。 我目前在 Struct Fields类(class),这是右侧的示例代码: package main import "fm
Last time I got confused顺便说一下PowerShell急切地展开集合,基思总结了它的启发式如下: Putting the results (an array) within a
我是一名优秀的程序员,十分优秀!