設(shè)置支持的屏幕方向有兩個(gè)級(jí)別,一個(gè)是app級(jí)別的息尺,另一個(gè)是viewController級(jí)別的疾掰。
app 級(jí)別的可以在[target]-[general]-[device orientation]里面設(shè)置,如下圖:
默認(rèn)情況下Upside Down沒(méi)有勾選静檬,其他都勾選了拂檩。
(為什么Upside Down不推薦勾選呢,因?yàn)閕Phone的電話(huà)app是不支持Upside Down的稻励,如果你的app支持Upside Down,萬(wàn)一用戶(hù)在用你的app的時(shí)候Upside Down了至非,這時(shí)候來(lái)了電話(huà)糠聪,就會(huì)看到整個(gè)來(lái)電的畫(huà)面是顛倒的,用戶(hù)體驗(yàn)很不好趣惠。一向注重用戶(hù)體驗(yàn)的蘋(píng)果是不推薦你勾選Upside Down的)
viewController級(jí)別的就是在各個(gè)viewController里面設(shè)置了身害。
這里有一點(diǎn)需要注意,viewController的設(shè)置受app級(jí)別設(shè)置的限制侍瑟,也就是viewController能夠設(shè)置的屏幕方向只能是在app級(jí)別中勾選的一種或多種,沒(méi)有勾選的是不能設(shè)置的涨颜。比如上面的Upside Down沒(méi)有勾選庭瑰,那么viewController也就不能設(shè)置Upside Down的方向。
那么在viewController里面怎么設(shè)置屏幕方向呢弹灭?
iOS6以前:
[objc] view plain copy
// 設(shè)置屏幕只支持豎向
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
從iOS6開(kāi)始穷吮,上面的方法已經(jīng)被拋棄,有了3個(gè)新的方法:
[objc] view plain copy 在CODE上查看代碼片派生到我的代碼片
// 不支持屏幕旋轉(zhuǎn)
- (BOOL)shouldAutorotate
{
return NO;
}
// 只支持豎向
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationPortrait;
}
// 畫(huà)面一開(kāi)始加載時(shí)就是豎向
// - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
// return UIInterfaceOrientationPortrait;
// }