有时候要制作某个动画,用到了系统功能自带的弹簧动画
然后根据 弹簧动画中控件的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 等来实时获取,
然后配合 重绘 和 绘图的功能 来刷新某个动画
本文介绍如何使用iOS系统自带的弹簧动画,并通过计算动画过程中控件的frame变化来确定控件间的相对位置变动。利用CALayer及KVC获取frame值,再通过NSTimer等实现动态更新。
616

被折叠的 条评论
为什么被折叠?



