2015-07-29 2 views
1

Я новичок в разработке приложений для iOS. Я использую CABasicAnimation для рисования линии горизонтально на экране моего приложения. Я успешно смогу нарисовать линию, но я не могу контролировать скорость анимации.Скорость управления в CABasicAnimation

Ниже приведен код для рисования линии.

-(void)drawLine{ 

    _boxPath = [UIBezierPath bezierPath]; 
    [_boxPath moveToPoint:CGPointMake(0.0,60.0)]; 
    [_boxPath addLineToPoint:CGPointMake(self.view.bounds.size.width/2, 60.0)]; 



    CAShapeLayer *layer = [CAShapeLayer layer]; 
    layer.frame = self.view.bounds; 
    layer.strokeColor = [[UIColor redColor] CGColor]; 
    layer.fillColor = [[UIColor blueColor] CGColor]; 
    layer.lineWidth = 5.0f; 
    layer.lineJoin = kCALineJoinBevel; 
    layer.path = _boxPath.CGPath; 
    layer.speed = 3.0; 


    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"line"]; 
    animation.duration = 3.0; 
    [self.view.layer addSublayer:layer]; 
    [layer addAnimation:animation forKey:@"line"]; 
} 

Независимо от того, что меня изменяет для скорости слоя и продолжительности анимации, нет изменений в скорости анимации. Я хочу замедлить скорость, с которой рисуется линия.

Любые предложения будут иметь большую помощь

+1

'speed = 3.0' фактически ускорит чертеж (в 3 раза нормальный). – matt

ответ

2

Ваш код нонсенс. Три точки:

  • Если вы собираетесь использовать неявную анимацию, можно использовать CATransaction setAnimationDuration: установить более длительный срок.

  • Если вы собираетесь использовать явную анимацию, используйте ее правильно. Создание CABasicAnimation и просто добавление его ничего не делает; вам нужно сначала настроить его. Нет пути к «линии», поэтому ваша анимация не имеет смысла.

  • Вы ничего не можете оживить. Ты должен оживить с пометкой. То, что вы, вероятно, хотите оживить, - это изменение в strokeEnd от нуля до одного.

Смежные вопросы