Reprint: http://blog.csdn.net/nogodoss/article/details/17246489
Recently the screen, get some experience, special record down.
The most important thing is to determine the interface of the screen response. There are two ways I know now:
1. Use notifications.
-(void) Viewdidload
{
[[Nsnotificationcenter defaultcenter] addobserver:self selector:@selector(_ Orientationdidchange:) name: Uideviceorientationdidchangenotification object:nil];
}
-(void) Dealloc {
[[Nsnotificationcenter defaultcenter] removeobserver:self name: UideviceorientationdidchangenotificationObject:nil];
}
-(void) _orientationdidchange: (nsnotification*) notify
{
[self _shouldrotatetoorientation:(uideviceorientation] [uiapplication sharedapplication ].statusbarorientation];
}
-(void) _shouldrotatetoorientation: (uideviceorientation) Orientation {
If (orientation = = Uideviceorientationportrait | | Orientation = = Uideviceorientationportraitupsidedown) {
Vertical screen
}
else {
Horizontal screen
}
}
The above code, a look will understand.
2. Using Viewwilllayoutsubviews
When the test finds the screen switching, the system responds to some functions, one of which is viewwilllayoutsubviews.
-(void) viewwilllayoutsubviews
{
[self _shouldrotatetoorientation:(uideviceorientation] [uiapplication Sharedapplication].statusbarorientation];
}
Through one of the above functions, we know the interface of the screen switching.
Attention:
Viewwilllayoutsubviews can only be used in Viewcontroller, there is no response in view.
Two-way event response (Viewwilllayoutsubviews and notifications)