iOS的屏幕旋轉(zhuǎn)學(xué)習(xí)筆記(orientation)

由于項(xiàng)目的需要,在播放視頻的ViewController中需要支持橫屏旋轉(zhuǎn)播放器,故重新寫了一下整個(gè)app的控制。

開始吧,首先保證一下自己的項(xiàng)目是支持三個(gè)方向的旋轉(zhuǎn)的。

在iPad中,蘋果默認(rèn)支持四個(gè)方向的旋轉(zhuǎn);在iPhone中,蘋果默認(rèn)只支持3中方向(建議按照套路來)

這里明確一下,相信大家做項(xiàng)目的時(shí)候都已經(jīng)有一種意識(shí),就是在開始項(xiàng)目的時(shí)候,都配備了 BaseViewController、BaseNavigationController 這兩個(gè)最基礎(chǔ)的類以供所有的ViewController,NavigationController繼承。

額:如果沒有,建議盡快添加 :-D

只要項(xiàng)目支持三個(gè)方向的旋轉(zhuǎn),不添加任何代碼的情況下,app在手機(jī)旋轉(zhuǎn)的時(shí)候就會(huì)自動(dòng)旋轉(zhuǎn)的。

在BaseNavigationController增加下面兩個(gè)方法:


- (BOOL)shouldAutorotate {

    if (self.topViewController != nil) {
        //如果當(dāng)前有VC,獲取VC里面的shouldAutorotate
        return [self.topViewController shouldAutorotate];

    }

    return [super shouldAutorotate];

}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

    if (self.topViewController != nil) {
        //如果當(dāng)前有VC,獲取VC里面的supportedInterfaceOrientations
        return [self.topViewController supportedInterfaceOrientations]; 

    }

    return [super supportedInterfaceOrientations];

}

在BaseViewController增加下面兩個(gè)方法:

- (BOOL)shouldAutorotate {
    //這里需要返回YES 
    // 如果你的項(xiàng)目僅僅在某個(gè)VC里面支持橫屏,其他都不支持的話,這里也需要返回YES
    return YES;      
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    //如果你的項(xiàng)目僅僅在某個(gè)VC里面支持橫屏,其他都不支持的話,這里也需要返回UIInterfaceOrientationMaskPortrait
    //而如果你的項(xiàng)目每一個(gè)頁面都需要支持橫屏,這里返回UIInterfaceOrientationMaskAllButUpsideDown就可以了
    return UIInterfaceOrientationMaskPortrait;
}

現(xiàn)在的代碼代表是項(xiàng)目所有頁面都只支持一個(gè)方向Portrait,不支持橫屏。
如果你現(xiàn)在新建一個(gè)需要橫屏的LandscapeViewController,則你只需要在 LandscapeViewController.h 繼承BaseViewController

@interface LandscapeViewController : BaseViewController

在LandscapeViewController.m 里面 增加

#pragma mark 開放橫屏切換
- (BOOL)shouldAutorotate {
    return YES;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

現(xiàn)在就實(shí)現(xiàn)了在整個(gè)項(xiàng)目中 僅僅LandscapeViewController這個(gè)VC能旋轉(zhuǎn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 相愛時(shí),任何小事都是增進(jìn)感情的步驟;不愛時(shí),任何小事都是變心的證據(jù)。 1. 朵兒和蘿卜先生在一起的時(shí)候是初夏,他們...
    艾米小姐閱讀 704評論 0 2
  • 9月中旬就開始計(jì)劃國慶去哪了,中間連續(xù)換了好幾個(gè)地方,先是打算去鳳凰,后來問了問情況之后發(fā)現(xiàn)不僅房間價(jià)格400多...
    leabear閱讀 359評論 0 1
  • 原來真的有人不讀研也能在3年賺得盆滿缽滿,再去開始新的旅行,再脫產(chǎn)到最好的學(xué)校繼續(xù)學(xué)習(xí)。 突然意識(shí)到,我從不清楚生...
    字退之閱讀 148評論 0 0
  • 又到周未,心中是無比的輕松。 “去書店買書吧,兩張購書卡馬上到期了。”孩子說。稚嫩的臉上寫滿對書的期待。 “好來。...
    清風(fēng)8833閱讀 248評論 0 0