我正在尝试添加图像并将其移动到曲线路径上。我有一个值为 0 到 100 的半圆。我想用值移动那个图像。
这是我的曲线进度条的图像
我想旋转那条线上的指针。
如果我尝试贝塞尔曲线,我将无法找到我的指针。它将动画从头到尾。
Any help how can i animate this.?
谢谢
Best Answer-推荐答案 strong>
使用以下代码片段制作半圆路径。用您需要使用的针替换旋转按钮,并提供移动针的角度。我正在将此代码用于速度计。希望这对您有所帮助。
- (void)spinButton : (UIView *)button : (float)angle
{
button.layer.anchorPoint = CGPointMake(0.5, 0.5);
CABasicAnimation *animation;
animation = [CABasicAnimation animationWithKeyPath"transform.rotation.z"];
// just for testing
// angle +=200;
if(angle >=360){angle = 360;}
animation.fromValue = [NSNumber numberWithFloat:lastAngle];
float m = angle/2 * (M_PI/180 );
animation.toValue = [NSNumber numberWithFloatm)];
// [CATransaction setValue:[NSNumber numberWithFloat:1.0] forKey:kCATransactionAnimationDuration];
lastAngle = m;
// animation.duration = 1.0f;
// to stop animation at last frame
animation.fillMode = kCAFillModeForwards;
animation.removedOnCompletion = NO;
animation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
animation.autoreverses = NO;
[button.layer addAnimation:animation forKey"rotationAnimation"];
[CATransaction begin];
// [CATransaction commit];
}
你可以这样调用这个函数:
[self spinButton:btn :0];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self spinButton:btn :50];
});
这样你就可以达到你想要的结果。
关于ios - 在曲线中移动 UIImageview,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/24280510/
|