注册 登录
主题 : 请教一个关于CAKeyframeAnimation的问题
级别: 侠客

状态: 连续签到 - [49天]
UID: 402370
精华: 0
发帖: 140
可可豆: 659 CB
威望: 582 点
在线时间: 396(时)
注册时间: 2014-11-17
最后登录: 2017-10-18
0 楼:  发表于: 2017-10-13 17:48    发自: Web Page
来源于 一般提问 分类

请教一个关于CAKeyframeAnimation的问题   

项目 一个功能. 根据不同分数 指针 指向 某个刻度,然而 问题来了
打开app时 指针指向正常,
push再pop回来 就变了方向.
切换一下tabbar就正常了
然后再push依然是正常

上代码
//这里这样写是因为不移除还会创建一个 或者有别的办法可以解决吗?
  if (_img) {
        [_img removeFromSuperview];
    }
    //路径
    UIBezierPath *bezier2 = [UIBezierPath bezierPathWithArcCenter:(CGPoint){originX,originY+y_offset} radius:radius-10 startAngle:startRadians endAngle:endRadians clockwise:YES];
    CGFloat x = originX+(radius-10)*cos(endRadians);
    CGFloat y = originY+y_offset+(radius-10)*sin(endRadians);
    _img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"zz"]];
    _img.contentMode = UIViewContentModeScaleAspectFit;
    _img.bounds = CGRectMake(0, 0, 20, 20);
    _img.center = CGPointMake(x, y);
    [self.layer addSublayer:_img.layer];

    CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    animation.path = bezier2.CGPath;
    animation.duration = 2;
    animation.calculationMode = kCAAnimationPaced;
//    animation.rotationMode = kCAAnimationRotateAuto;
    animation.fillMode = kCAFillModeForwards;
    animation.removedOnCompletion = NO;
    animation.repeatCount = 1;
    [_img.layer addAnimation:animation forKey:nil];





求朋友们指导一下??提供一些思路

/刚刚试了下 我把这个属性注释了 后 第一次push的话 img不会旋转,但是 效果不是我想要的了.我想要img随着路径变换的 这样刚好有绕一周的效果

//????animation.rotationMode = kCAAnimationRotateAuto;



[ 此帖被他好像一条狗在2017-10-13 17:57重新编辑 ]

图片:one.png
图片:two.png
图片:three.png
图片:four.png
级别: 侠客

状态: 连续签到 - [49天]
UID: 402370
精华: 0
发帖: 140
可可豆: 659 CB
威望: 582 点
在线时间: 396(时)
注册时间: 2014-11-17
最后登录: 2017-10-18
1 楼:  发表于: 2017-10-13 17:58    发自: Web Page
求解决
级别: 新手上路
状态: 连续签到 - [5天]
UID: 412887
精华: 0
发帖: 21
可可豆: 47 CB
威望: 32 点
在线时间: 13(时)
注册时间: 2014-12-10
最后登录: 2017-10-17
2 楼:  发表于: 2017-10-13 17:58    发自: Web Page
是类似钟表  ,启动正常,push到一个新界面, 在pop回来后,显示不正确,是这个意思吗?
级别: 侠客

状态: 连续签到 - [49天]
UID: 402370
精华: 0
发帖: 140
可可豆: 659 CB
威望: 582 点
在线时间: 396(时)
注册时间: 2014-11-17
最后登录: 2017-10-18
3 楼:  发表于: 2017-10-13 18:01    发自: Web Page
回 2楼(寒风) 的帖子
对对 这个和钟表类似  
级别: 新手上路
状态: 连续签到 - [5天]
UID: 412887
精华: 0
发帖: 21
可可豆: 47 CB
威望: 32 点
在线时间: 13(时)
注册时间: 2014-12-10
最后登录: 2017-10-17
4 楼:  发表于: 2017-10-13 18:15    发自: Web Page
方便的话 你可以摘出来一个关于这个功能的项目  发给我 我来尽力帮你看看
级别: 新手上路
状态: 连续签到 - [3天]
UID: 384249
精华: 0
发帖: 42
可可豆: 102 CB
威望: 97 点
在线时间: 398(时)
注册时间: 2014-10-10
最后登录: 2017-10-18
5 楼:  发表于: 2017-10-13 18:50    发自: Web Page
layer动画的一个普遍问题。因为在动画的过程中你看到的指针是layer图层,它的frame并不会跟着layer层实时改变。你pop回来它会在它真是frame的那个位置。楼主可以测试下,仅供参考。
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部