IOS在指定的控制器支持屏幕旋轉(zhuǎn)

  • 想要app支持屏幕旋轉(zhuǎn),info.plis文件必須勾選支持旋轉(zhuǎn)的幾個(gè)選項(xiàng):


    image
  • 控制屏幕旋轉(zhuǎn)的三個(gè)方法:

- (BOOL)shouldAutorotate;
- (UIInterfaceOrientationMask)supportedInterfaceOrientations;
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation;
  • 第一個(gè)方法決定是否支持多方向旋轉(zhuǎn)屏,如果返回NO則后面的兩個(gè)方法都不會(huì)再被調(diào)用,而且只會(huì)支持默認(rèn)的UIInterfaceOrientationMaskPortrait方向;

  • 第二個(gè)方法直接返回支持的旋轉(zhuǎn)方向,該方法在iPad上的默認(rèn)返回值是UIInterfaceOrientationMaskAll,iPhone上的默認(rèn)返回值是UIInterfaceOrientationMaskAllButUpsideDown,官方文檔有說明

  • 第三個(gè)方法返回最優(yōu)先顯示的屏幕方向,比如同時(shí)支持Portrait和Landscape方向,但想優(yōu)先顯示Landscape方向,那軟件啟動(dòng)的時(shí)候就會(huì)先顯示Landscape,在手機(jī)切換旋轉(zhuǎn)方向的時(shí)候仍然可以在Portrait和Landscape之間切換;

  • 在UINavigationController或者自定義的UINavigationController中重寫上面三個(gè)方法,即可實(shí)現(xiàn)在特定的控制器實(shí)現(xiàn)屏幕旋轉(zhuǎn)代碼如下:

 - (BOOL)shouldAutorotate{
 // 返回當(dāng)前顯示的viewController是否支持旋轉(zhuǎn)
    return [self.visibleViewController shouldAutorotate];
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
// 返回當(dāng)前顯示的viewController支持旋轉(zhuǎn)的方向
    return [self.visibleViewController preferredInterfaceOrientationForPresentation];
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
// 返回當(dāng)前顯示的viewController是優(yōu)先旋轉(zhuǎn)的方向
    if (![self.visibleViewController isKindOfClass:[UIAlertController class]]) {//iOS9 UIWebRotatingAlertController
        return [self.visibleViewController supportedInterfaceOrientations];
    }else{
        return UIInterfaceOrientationMaskPortrait;
    }
}
  • 然后在想要旋轉(zhuǎn)屏幕的的控制器中重寫上面三個(gè)方法:
- (BOOL)shouldAutorotate {
   return YES;
}

// 這里返回需要支持旋轉(zhuǎn)的方向
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
    return UIInterfaceOrientationLandscapeLeft;
}
// 優(yōu)先顯示的方向
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAll;
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、UIDeviceOrientation 設(shè)備的物理方向 簡(jiǎn)介UIDeviceOrientation即我們手持的...
    MrJ的雜貨鋪閱讀 28,102評(píng)論 8 75
  • iOS屏幕旋轉(zhuǎn)學(xué)習(xí)筆記iOS開發(fā)中使用屏幕旋轉(zhuǎn)功能的相關(guān)方法 1、基本知識(shí)點(diǎn)解讀 了解屏幕旋轉(zhuǎn)首先需要區(qū)分兩種 o...
    Laughingg閱讀 13,761評(píng)論 13 39
  • 前言的前言 唐巧前輩在微信公眾號(hào)「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各項(xiàng)指標(biāo)...
    VincentHK閱讀 5,575評(píng)論 3 44
  • 子夜隨筆 今天下班有點(diǎn)晚,等我走出學(xué)校大門時(shí),大街上已是華燈一片了。 今年的秋天...
    英子_yingzi閱讀 448評(píng)論 4 5
  • 1、今日狀況 習(xí)慣養(yǎng)成第48天。昨晚22:00睡,中間驚醒1次。今早5:00起床,累計(jì)早5第34天,連續(xù)早5第1天...
    啵啵啵?;ㄩ_了閱讀 416評(píng)論 4 3

友情鏈接更多精彩內(nèi)容