What’s the correct way to autosize or automove all view’s components when call status bar appear (status bar height change)?

I’m using:
- (void) application:(UIApplication*)application
didChangeStatusBarFrame:(CGRect)oldStatusBarFrame { }
but in this way i need to set manually the frame of all the elements. I think that not is the best way.
I tried to set autosize in interface builder panel, but nothing change when status bar change frame.

Is there a correct way to do this in all of my view without set frame to every elements in every view?
thanks.
Using
- (void) application:(UIApplication*)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrameis not a good place to do this.The solution will depend on your desired layout. If it is simple enough the autosizing mask will work fine. For more complex layout you might want to subclass
UIViewand use it as a container for the subviews. You can then override layoutSubviews to perform the correct layout depending on the bounds of the view (with the container being autoresized).For autoresizing: e.g. If you want to have all labels to be fixed with respect to the bottom border and have a fixed height: simply click the bottom spacing in the autoresizing dialogue and remove the height arrow.