You are setting the status value inside a block which will be executed asynchronously. Meaning, your return statement is NOT guaranteed to be executed after the block is executed. To know when your animation is finished you need to declare your method in a different way.
+ (void)showAnimationFirstContent:(UIView *)view completion:(void (^)(void))callbackBlock{
CGRect show = [SwFirstContent rectFirstContentShow];
[UIView animateWithDuration:DURATION
delay:DELAY
options:UIViewAnimationOptionBeginFromCurrentState
animations:^{ view.frame = show; }
completion:^( BOOL finished ) {
callbackBlock();
}];
}
And you can call this method like this:
[MyClass showAnimationFirstContent:aView completion:^{
//this block will be executed when the animation will be finished
[self doWhatEverYouWant];
}];
You may want to read a bit more about how block works.
Hope this helps.