- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想实现一个自定义的 UIDynamicBehavior,使 View “爆发”。为此,我需要淡出它并将其缩放到原来大小的 2 倍。
我通过在 action
block 中设置 View 的 alpha
和 bounds
来做到这一点。但是,我怎么知道 Action block 被调用的频率?文档说“在每个滴答声上”,但有多少?
我添加了一个计数器。在没有其他动画的情况下,该 block 被调用了 30 次。加上一些重力和动力行为,它被称为500次。
我也不明白 UIDynamicAnimator
如何知道它的行为何时“完成”移动东西。任何人都可以阐明这一点吗?
下面的代码有时可以工作,但有时行为会在 View 完全动画之前停止(即它仍然可见)。
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;
};
最佳答案
要检测动画何时结束,您可以试试这个:
__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;
};
或者检查您正在更改的另一个值。
关于ios - 自定义 UIDynamicBehavior : how do I know the total number of animation steps/ticks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22318506/
我正在尝试在屏幕上移动 UIView。 UIGravityBehavior 和 UIPushBehavior 都将密度、速度和摩擦力等因素考虑在内。我试图实现我自己的忽略那些物理的动态行为。 我的 U
我一直在寻找展示如何在 UIKit 动态中实现自定义 UIDynamicBehavior 的示例。所有教程和示例仅展示了如何使用基元(碰撞、重力、附件、插入、捕捉等)组装 UIDynamicBehav
我想实现一个自定义的 UIDynamicBehavior,使 View “爆发”。为此,我需要淡出它并将其缩放到原来大小的 2 倍。 我通过在 action block 中设置 View 的 alph
我是一名优秀的程序员,十分优秀!