gpt4 book ai didi

ios - UIViewAnimationOption重复完成?

转载 作者:行者123 更新时间:2023-11-28 19:06:57 32 4
gpt4 key购买 nike

我正在做一个非常简单的重复动画来淡入和淡出标签,如下所示。我假设每次动画结束时都会调用完成 block ,但是在使用 UIViewAnimationOptionRepeat 时它永远不会被调用。那么我该如何停止这个动画呢?

我知道我可以使用 [self.lbl.layer removeAllAnimations];,但是它结束得非常突然。我想知道它什么时候完成一个动画循环,以便我可以在那个时候停止它。

[UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveEaseInOut animations:^{
self.lbl.alpha = 0;

} completion:^(BOOL finished){
if (finished) NSLog(@"done");

}];

最佳答案

如果你希望带有UIViewAnimationOptionRepeat选项的动画是有限的,你必须通过UIView的+ (void)setAnimationRepeatCount:(float)repeatCount设置重复次数.

如果是基于 block 的动画(就是你的情况),你应该在动画 block 中设置重复计数。所以,这里是你的代码修改:

[UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveEaseInOut animations:^{
[UIView setAnimationRepeatCount:4]; // 4 as example here
self.lbl.alpha = 0;

} completion:^(BOOL finished){
if (finished) NSLog(@"done");

}];

setAnimationRepeatCount: 的文档中提到了这一点UIView 的方法。

关于ios - UIViewAnimationOption重复完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19479814/

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