有时候要制作某个动画,用到了系统功能自带的弹簧动画
然后根据 弹簧动画中控件的frame 来标记计算 相应控件的改变值
-(void)drawAnimation{
// 获取方法
// 1.获取动画中控件的layer
CALayer *sideHelperPresentationLayer = (CALayer *)[self.view1.layer presentationLayer];
CALayer *centerHelperPresentationLayer = (CALayer *)[self.view2.layer presentationLayer];
// 2.从layer属性中 获取 frame的值
CGRect centerRect = [[centerHelperPresentationLayer valueForKeyPath:@"frame"]CGRectValue];
CGRect sideRect = [[sideHelperPresentationLayer valueForKeyPath:@"frame"]CGRectValue];
// 执行相应的操作
self.offSet = sideRect.origin.x - centerRect.origin.x;
[self setNeedsDisplay];
}
此操作通常配合 计时器 NSTimer CADisplayerLink 等来实时获取,
然后配合 重绘 和 绘图的功能 来刷新某个动画