iOS開發強制個別介面豎屏顯示

來源:互聯網
上載者:User
方法

1、通過AppDelegate的 - application: supportedInterfaceOrientationsForWindow: 方法來設定

這個方法是幹什麼的,說明一下這個方法是用來設定介面支援的轉屏方向,不是用來轉屏的,這個方法不能滿足部分需求。

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)nowWindow {    if (_deviceOrientationPortrait) {        return UIInterfaceOrientationMaskPortrait;    }    return UIInterfaceOrientationMaskLandscape | UIInterfaceOrientationMaskPortrait;}

_deviceOrientationPortrait是AppDelegate的一個Bool屬性,當需要豎屏顯示的介面:

在一個介面中,如下處理

- (void)viewWillAppear:(BOOL)animated {    [super viewWillAppear:animated];    [[AppDelegate delegate] setDeviceOrientationPortrait:YES];}- (void)viewDidDisappear:(BOOL)animated {    [super viewDidDisappear:animated];    [[AppDelegate delegate] setDeviceOrientationPortrait:NO];}

注意:這樣只能設定該介面所支援的轉屏方向,如果剛開始進入介面的時候是其他方向,就不能保證介面轉回來。如果整個項目需要設定橫豎屏,直接用這個方法還是挺好的。

2、如果剛進入介面就要讓介面處於豎屏,就要複寫一下幾個方法來處理:

- (BOOL)shouldAutorotate {    return YES;}- (UIInterfaceOrientationMask)supportedInterfaceOrientations {    return UIInterfaceOrientationMaskPortrait;}- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {    return UIInterfaceOrientationPortrait;}

這種方式需要配置如下,why:

3、 最後

UINavigationController或UITabBarController,需要做特殊處理。

//是否自動旋轉-(BOOL)shouldAutorotate{    return self.topViewController.shouldAutorotate;}//支援的方向- (UIInterfaceOrientationMask)supportedInterfaceOrientations{    return self.topViewController.supportedInterfaceOrientations;}//一開始的方向  很重要- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{    return self.topViewController.preferredInterfaceOrientationForPresentation;}

推薦閱讀:https://www.jianshu.com/p/6ac34ab1ea24 選擇性採納。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.