我可以将动画“冻结”,可以这么说,并手动更改其进度吗?
例如:
如果路径长度为100个点,则将进度(偏移量?)设置为0.45应使视图沿路径向下移动45个点.
我记得通过camediatiming接口看到一篇做类似事情的文章(基于滑块的值沿路径移动视图),但即使经过几个小时的搜索,我也找不到它.如果我以完全错误的方式接近这个,请告诉我.谢谢.
这里有一些示例代码,如果上面不够清楚的话.
- (voID)setupAnimation{ CAKeyFrameAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; UIBezIErPath *path = [UIBezIErPath bezIErPath]; [path movetoPoint:_label.layer.position]; [path addlinetoPoint:(CGPoint){200,200}]; animation.path = path.CGPath; animation.duration = 1; animation.autoreverses = NO; animation.removedOnCompletion = NO; animation.speed = 0; // _label is just a UILabel in a storyboard [_label.layer addAnimation:animation forKey:@"LabelPathAnimation"]; }- (voID)slIDerDIDSlIDe:(UiSlider *)slIDer{ // move _label along _animation.path for a distance that corresponds to slIDer.value}解决方法 这是基于乔纳森所说的,只是更重要的一点.动画设置正确,但滑块 *** 作方法应如下所示:
- (voID)slIDerDIDSlIDe:(UiSlider *)slIDer { // Create and configure a new CAKeyframeAnimation instance CAKeyframeAnimation *animation = ...; animation.duration = 1.0; animation.speed = 0; animation.removedOnCompletion = NO; animation.timeOffset = slIDer.value; // Replace the current animation with a new one having the desired timeOffset [_label.layer addAnimation:animation forKey:@"LabelPathAnimation"];}
这将使标签基于timeOffset沿着动画的路径移动.
总结以上是内存溢出为你收集整理的ios – CAKeyframeAnimation手动进度全部内容,希望文章能够帮你解决ios – CAKeyframeAnimation手动进度所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)