iOS 橫屏開發(fā)

本項目只是個別頁面需要橫屏,所以不需要勾選方向,默認豎屏即可。

注意:

1、iOS16以下版本:只支持present跳轉(zhuǎn)頁面,并且是要設(shè)置scanVC.modalPresentationStyle = UIModalPresentationFullScreen;才會進入頁面自動橫屏生效

2、iOS16版本:push,present都可以(親測iOS16.4)

1.創(chuàng)建單例(RotationManager)用于管理界面橫豎屏狀態(tài)

.h代碼

//單例類

+(instancetype)shareInstance;

//是否橫屏

@property(nonatomic,assign)BOOL isRotation;

//當(dāng)前屏幕狀態(tài)

+(UIInterfaceOrientationMask)supportedInterfaceOrientationsType;

.m代碼

static RotationManager*_manager;

//單例方法

+(instancetype)shareInstance{

? ? staticdispatch_once_t onceToken;

? ? dispatch_once(&onceToken,^{

? ? ? ?_manager=[[RotationManager alloc]init];

? ? ? _manager.isRotation=NO;

? ?});

return_manager;

}

//查詢需要的屏幕狀態(tài)

+(UIInterfaceOrientationMask)supportedInterfaceOrientationsType{

? ? ?if(_manager.isRotation){

? ? ? ? ? returnUIInterfaceOrientationMaskLandscape;

? ? ? }

? ? ? returnUIInterfaceOrientationMaskPortrait;

}

2.vc頁調(diào)用

記得在哪頁需要,就在哪頁引入頭文件 #import "RotationManager.h"

-(void)viewDidLoad{

?[superviewDidLoad];

//開啟橫屏狀態(tài)

[RotationManager shareInstance].isRotation=YES;

}

-(void)viewWillDisappear:(BOOL)animated{

[superviewWillDisappear:animated];

//一定要記得關(guān)閉橫屏狀態(tài),不然退出界面后依舊是橫屏

[RotationManager shareInstance].isRotation=NO;

}

-(BOOL)shouldAutorotate{

returnYES;

}

-(UIInterfaceOrientationMask)supportedInterfaceOrientations{

? ?return ? UIInterfaceOrientationMaskLandscapeRight|UIInterfaceOrientationMaskLandscapeLeft;

}

-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{

? ?return ? UIInterfaceOrientationLandscapeRight;

}

3.AppDelegate

-(UIInterfaceOrientationMask)application:(UIApplication*)application supportedInterfaceOrientationsForWindow:(UIWindow*)window{

? ?return [RotationManager supportedInterfaceOrientationsType];

}

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

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

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