首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义UIDynamicBehavior:如何知道动画的总步数/节拍?

自定义UIDynamicBehavior:如何知道动画的总步数/节拍?
EN

Stack Overflow用户
提问于 2014-03-11 14:56:17
回答 1查看 599关注 0票数 3

我想实现一个自定义的UIDynamicBehavior,它可以让视图“突发”。要做到这一点,我需要淡出它,并将其缩放到其大小的2倍。

为此,我在action块中设置了视图的alphabounds。但是,我如何知道动作块被调用的频率?医生说“在每个刻度上”,但是有多少呢?

我加了个计数器。在没有其他动画的情况下,该块被调用30次。通过一些重力和动态行为,它被调用了500次。

我也不明白UIDynamicAnimator是如何知道它的行为何时被“完成”移动的。有谁能解释一下这件事吗?

下面的代码有时会起作用,但有时行为会在视图完全动画之前停止(即它仍然可见)。

代码语言:javascript
复制
self.action = ^{

        static NSInteger count = 0;
        NSLog(@"animation tick: %d", count);
        count++;

        UIView *view = (UIView*)[weakSelf.items lastObject];
        view.alpha = view.alpha - 0.1;

        CGRect bounds = view.bounds;
        bounds.size.width += 1;
        bounds.size.height += 1;
        view.bounds = bounds;

    };
EN

回答 1

Stack Overflow用户

发布于 2014-05-28 09:41:59

为了检测动画何时结束,您可以尝试执行以下操作:

代码语言:javascript
复制
__weak Entity *weakSelf = self;
self.behavior.action = ^{
    if (weakSelf.center.x == weakSelf.lastPosition.x && weakSelf.center.y == weakSelf.lastPosition.y) {
        NSLog(@"end of dynamic movement");
    }
    weakSelf.lastPosition = weakSelf.center;
};

或者检查您正在更改的其他值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22318506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档