我在玩UIKitDynamics,它真的很整洁。目前,我有以下代码:
CGPoint center = [newSelectedLabel center];
[self.animator removeBehavior:self.snapBehavior];
self.snapBehavior = [[UISnapBehavior alloc] initWithItem:self.indicatorView snapToPoint:center];
self.snapBehavior.damping = 0.67;
[self.animator addBehavior:self.snapBehavior];
[self.delegate didChangeToIndex:sender.tag];
这是一个简单的快照行为,并且效果很好。但是由于种种原因,我想知道系统何时进入“休息”状态-即一切都停止了运动。我可以使用动画器上的属性或委托(delegate)方法。
我怎样才能做到这一点?
最佳答案
经过一番摸索之后, UIDynamicAnimatorDelegate
似乎执行了此操作-似乎在系统处于静止状态时调用了 - (void)dynamicAnimatorDidPause:(UIDynamicAnimator *)animator
方法。
self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self];
self.animator.delegate = self;
和
#pragma mark - UIDynamicAnimator Delegate
- (void)dynamicAnimatorDidPause:(UIDynamicAnimator *)animator
{
NSLog(@"pause");
}
- (void)dynamicAnimatorWillResume:(UIDynamicAnimator *)animator
{
NSLog(@"resume");
}
似乎有效-动画开始时记录
resume
,动画停止后一秒钟内记录pause
。另外,UIDynamicAnimator本身的
running
属性似乎将调用镜像到委托(delegate)方法-调用willResume时为1
,调用didPause时为0
。关于ios - 我怎么知道什么时候UIDynamicAnimator处于静止状态?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22263472/