My Core Animation block isn't working as I'd expect
- by Alex Reynolds
I have a UIView called activityView, which contains two subviews activityIndicator and cancelOperationsButton. These views are embedded in a XIB and wired up to my view controller.
I have two methods that deal with activating (showing) and deactivating (hiding) these two subviews:
- (void) enableActivityIndicator {
[activityIndicator startAnimating];
[cancelOperationsButton setHidden:NO];
}
- (void) disableActivityIndicator {
[activityIndicator stopAnimating];
[cancelOperationsButton setHidden:YES];
}
By themselves, these two methods work fine.
To give this a bit of polish, I'd like to add an animation that fades these subviews in and out:
- (void) enableActivityIndicator {
[activityIndicator startAnimating];
[cancelOperationsButton setHidden:NO];
[UIView beginAnimations:@"fadeIn" context:nil];
[UIView setAnimationDelay:0.0f];
[UIView setAnimationDuration:1.0f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
activityView.alpha = 1.0f;
[UIView commitAnimations];
}
- (void) disableActivityIndicator {
[UIView beginAnimations:@"fadeOut" context:nil];
[UIView setAnimationDelay:0.0f];
[UIView setAnimationDuration:1.0f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
activityView.alpha = 0.0f;
[UIView commitAnimations];
[activityIndicator stopAnimating];
[cancelOperationsButton setHidden:YES];
}
But the animations are not working — the subviews just show up or disappear without the parent view's alpha property having an effect on transparency.
How should I write these methods to get the fade-in, fade-out effect I am after?