Как я могу скрыть свой UIImageView после завершения анимации?

Как я могу скрыть свой UIImageView после завершения анимации? Моя анимация работает нормально, когда я перехожу в представление. Я хочу иметь возможность скрыть изображение после завершения анимации. Как я могу это сделать?

-(void) animate
{
    NSLog(@"Animate");

    CGPoint startPoint = [pickerCircle center];
    CGPoint endPoint = [pickerButton1 center];

    CGMutablePathRef thePath = CGPathCreateMutable();
    CGPathMoveToPoint(thePath, NULL, startPoint.x, startPoint.y);
    CGPathAddLineToPoint(thePath, NULL, endPoint.x, endPoint.y);

    CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    animation.duration = 3.f;
    animation.path = thePath;
    animation.repeatCount = 2;
    animation.removedOnCompletion = YES;
    [pickerCircle.layer addAnimation:animation forKey:@"position"];
    pickerCircle.layer.position = endPoint;
}

person Jack Shultz    schedule 04.04.2015    source источник


Ответы (2)


Установите для свойства делегата анимации значение self следующим образом:

animation.delegate = self;

И тогда вы можете использовать:

-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag {
    // hide your UIImage here
}

Он будет вызван, когда анимация будет завершена.

person Clay Garrett    schedule 05.04.2015

Вы пробовали завершение? Вот пример 4.2есть пример о показе и скрытии представления с использованием завершения. Я плохо разбираюсь в анимации, но я думаю, что завершение должно работать.

person Gürhan KODALAK    schedule 04.04.2015
comment
Извините, это не совсем ответ на мой вопрос. Да, я вижу примеры в других типах анимаций, в которых используются блоки completion:, мне нужна помощь именно с CAKeyframeAnimation - person Jack Shultz; 05.04.2015