Ios 如何判断UIDynamicAnimator何时处于静止状态?

Ios 如何判断UIDynamicAnimator何时处于静止状态?,ios,uikit-dynamics,Ios,Uikit Dynamics,我在玩,它真的很漂亮。目前我有以下代码: CGPoint center = [newSelectedLabel center]; [self.animator removeBehavior:self.snapBehavior]; self.snapBehavior = [[UISnapBehavior alloc] initWithItem:self.indicatorView snapToPoint:center]; self.snapBehavior.damping = 0.67; [se

我在玩,它真的很漂亮。目前我有以下代码:

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];
这是一个简单的捕捉行为,效果非常好。不过,出于各种原因,我想知道系统何时进入“静止”状态,即所有东西都停止移动。我对animator的属性或委托方法都很满意


我该怎么做

在进行了更多的探索之后,似乎是这样做的-该方法似乎是在系统处于静止状态时调用的

self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self];
self.animator.delegate = self;

似乎可以工作-
resume
在动画开始时被记录,而
pause
在动画停止后的一秒钟内被记录


此外,UIDynamicMator本身上的属性似乎反映了对委托方法的调用—调用willResume时为
1
,调用didPause时为
0

动画师有一个属性“running”,告诉您动画师何时休息

仅当动画师正在运行时,与动画师行为关联的视图才能更改位置或更改变换。出于优化目的,iOS可以暂停并重新启动动画师。如果需要检查视图当前是否受到位置或变换更改的影响,请使用此方法


Swift 4.2:

//MARK:- UIDynamicAnimator Delegate
extension YourViewController: UIDynamicAnimatorDelegate {
    func dynamicAnimatorDidPause(_ animator: UIDynamicAnimator) {
        // pause
    }

    func dynamicAnimatorWillResume(_ animator: UIDynamicAnimator) {
        // resume
    }
}
//MARK:- UIDynamicAnimator Delegate
extension YourViewController: UIDynamicAnimatorDelegate {
    func dynamicAnimatorDidPause(_ animator: UIDynamicAnimator) {
        // pause
    }

    func dynamicAnimatorWillResume(_ animator: UIDynamicAnimator) {
        // resume
    }
}