UIInterfaceOrientationPortrait: 正常
UIInterfaceOrientationPortraitUpsideDown: 轉180度
UIInterfaceOrientationLandscapeLeft: 向左轉90度
UIInterfaceOrientationLandscapeRight: 向右轉90度
1. 建立一個名為AutoSize項目後,單擊AutoSizeViewController.m,可看到模板已提供了一個名為shouldAutorotateToInterfaceOrientation的方法。
2. 系統通過調用此方法詢問視圖控制器是否旋轉到指定方向。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
3. interfaceOrientation參數將包含以下四個值之一,並且此方法需要返回YES或NO,以指示是否應該旋轉應用程式的視窗以匹配新的方向。由於每個視圖控制器子類實現此方法的方向各不相同,因此一個應用程式可能僅支援旋轉部分視圖,而不支援旋轉其它視圖。
UIInterfaceOrientationPortrait、
UIInterfaceOrientationPortraitUpsideDown、
UIInterfaceOrientationLandscapeLeft、UIInterfaceOrientationLandscapeRight
4. 若要啟動自動旋轉,只需將方法更改為對傳入的任何值都返回YES。如
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
return YES;
}
5. 若只想支援其中的一部分方向,則必須檢查interfaceOrientation的值,對想要支援的值返回YES,對不想支援的值返回NO。例如要支援兩個方向中的從向模式和橫向模式,但不支援旋轉到倒置的縱向模式,代碼如:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait ||
interfaceOrientation==UIInterfaceOrientationLandscapeLeft ||
interfaceOrientation==UIInterfaceOrientationLandscapeRight );
}
UIInterfaceOrientationPortrait: 正常
UIInterfaceOrientationPortraitUpsideDown: 轉180度
UIInterfaceOrientationLandscapeLeft: 向左轉90度
UIInterfaceOrientationLandscapeRight: 向右轉90度