gpt4 book ai didi

iOS - 多个动画 block ?

转载 作者:可可西里 更新时间:2023-11-01 06:21:10 25 4
gpt4 key购买 nike

我有多个动画必须作为链运行。我处理这个问题的方法是使用 completionHandler 并运行下一个动画 block 。有更简洁的方法来处理这个问题吗?

[UIView animateWithDuration:1 animations^{

// perform first animation
}completion:(BOOL finished){

[UIView animateWithDuration:1 animations^{

// perform second animation
}completion:(BOOL finished){

}];

}];

最佳答案

您还可以使用具有交错延迟的 animateWithDuration:delay:options:animations:completion: 以便它们按顺序开始,但通常最好使用完成 block 来完成它们。

如果有多个并且它使代码难以阅读,只需分解出这些 block (我是在脑海中打字,所以它可能无法编译):

typedef void (^AnimationBlock)();

AnimationBlock firstAnimation = ^{ ... };
AnimationBlock secondAnimation = ^{ ... };

[UIView animateWithDuration:1 animations:firstAnimation completion:(BOOL finished) {
[UIView animateWithDuration:1 animations:secondAnimation];}];

您可以在 UIView 上创建一个类别,它采用一组这样的 block 并将它们链接在一起,但您必须处理所有极端情况。你如何定义时间?你如何处理中止的动画等。在大多数情况下,以上可能是最好的方法。

关于iOS - 多个动画 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10019696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com