Я пытаюсь встряхнуть UIView при нажатии кнопки.
Я адаптирую код, который я нашел на http://www.cimgf.com/2008/02/27/core-animation-tutorial-window-shake-effect/.
Однако, пытаясь адаптировать следующий код, чтобы встряхнуть UIView, он не работает:
- (void)animate {
    const int numberOfShakes = 8;
    const float durationOfShake = 0.5f;
    const float vigourOfShake = 0.1f;
    CAKeyframeAnimation *shakeAnimation = [CAKeyframeAnimation animation];
    CGRect frame = lockView.frame;
    CGMutablePathRef shakePath = CGPathCreateMutable();
    CGPathMoveToPoint(shakePath, NULL, CGRectGetMinX(frame), CGRectGetMinY(frame));
    for (int index = 0; index < numberOfShakes; ++index) {
        CGPathAddLineToPoint(shakePath, NULL, CGRectGetMinX(frame) - frame.size.width * vigourOfShake, CGRectGetMinY(frame));
        CGPathAddLineToPoint(shakePath, NULL, CGRectGetMinX(frame) + frame.size.width * vigourOfShake, CGRectGetMinY(frame));
    }
    CGPathCloseSubpath(shakePath);
    shakeAnimation.path = shakePath;
    shakeAnimation.duration = durationOfShake;
    [lockView.layer addAnimation:shakeAnimation forKey:@"frameOrigin"];
}