UIView animation stops when view disappears, doesn't resume when it re-appears

I was having the same issue. Resolved with the following.

yourCoreAnimation.isRemovedOnCompletion = false

Or you have group of animations

yourGroupAnimation.isRemovedOnCompletion = false

I'm not sure what you're doing with that notification. I've done lots of animations with constraints and never had to do that. I think the problem is that when you leave the view, the constraint's constant value will be 15 (I've verified that with logs in viewWillDisappear), so the animation to set it to 15 will do nothing. In a test app, I set the constant back to its starting value (0) in viewWillAppear, and it worked fine:

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.bottomCon.constant = 0;
    [self.view layoutIfNeeded];
}


-(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [UIView animateWithDuration:1 delay:0.0f options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse  animations:^{
        self.bottomCon.constant = -40.0f;
        [self.view layoutIfNeeded];
    } completion:nil];
}

This is the drawback. To overcome this you have to again call the animation method.

You can do it as follows :

Add Observer in your controller

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resumeAnimation:) name:UIApplicationDidBecomeActiveNotification object:nil];

This will get invoked once you resume the app.

Add this method :

- (void)resumeAnimation:(NSNotification *)iRecognizer {
    // Restart Animation
}

Hope this will help you.