• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 在曲线中移动 UIImageview

[复制链接]
菜鸟教程小白 发表于 2022-12-12 23:04:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试添加图像并将其移动到曲线路径上。我有一个值为 0 到 100 的半圆。我想用值移动那个图像。

这是我的曲线进度条的图像 我想旋转那条线上的指针。

如果我尝试贝塞尔曲线,我将无法找到我的指针。它将动画从头到尾。

Any help how can i animate this.? 

谢谢

enter image description here



Best Answer-推荐答案


使用以下代码片段制作半圆路径。用您需要使用的针替换旋转按钮,并提供移动针的角度。我正在将此代码用于速度计。希望这对您有所帮助。

- (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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap