作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在玩 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
在动画停止后的一秒内被记录。
另外,running
UIDynamicAnimator 本身的属性似乎反射(reflect)了对委托(delegate)方法的调用 - 当调用 willResume 时它是 1
,当 时它是 0
didPause 被调用。
关于ios - 我如何判断 UIDynamicAnimator 何时处于静止状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22263472/
我是一名优秀的程序员,十分优秀!