本項目需求是手機端支持豎屏炬太,個別頁面支持橫屏鸯屿,pad端支持橫豎屏懒震。
一:對不同端做橫豎屏方向的權(quán)限限制:
第一種方法:咋infoplist中加入以下代碼:
第二種方法:
代碼實現(xiàn):在APPdelegate中 寫入方法
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
? ?if (IS_IPHONE) {?
return UIInterfaceOrientationMaskPortrait;
}else
?? ? ? return UIInterfaceOrientationMaskAll;
}
剛開始用的是第一種方法熊锭,但是在處理pad端保利視頻播放器頁面全屏播放的時候橘荠,發(fā)現(xiàn)有沖突,這個坑原因還沒想出來寺擂,后期補上暇务。個人建議用第二種方法,后期牽扯到橫豎屏的一些問題怔软,比較容易拓展垦细。
二:前期沒有做過pad端的項目,所以在項目前期挡逼,對項目預(yù)測以及時間的把握上不是很精準
三:對于橫豎屏判斷方法:
第一種方法:
if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait || [[UIDevice currentDevice] orientation] == UIDeviceOrientationPortraitUpsideDown ) {
? ? ? ? NSLog(@"豎屏");
?} else if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft || [[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight){
?NSLog(@"橫屏");
}
第二種 方法:
UIApplication* app = [UIApplication sharedApplication];
? ? // 判斷設(shè)備方向狀態(tài)括改,做響應(yīng)的操作
? ? if(app.statusBarOrientation == UIInterfaceOrientationPortrait || app.statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown){
? ? ? ??NSLog(@"豎屏");
? ? }else if(app.statusBarOrientation == UIInterfaceOrientationLandscapeLeft || app.statusBarOrientation == UIInterfaceOrientationLandscapeRight){
? ? ? ??NSLog(@"橫屏");
? ? }
判斷橫豎屏的方法有很多千绪,我先簡單 說一下我入的坑荸哟,第一種方法是判斷的設(shè)備的物理狀態(tài),一共是6個狀態(tài)伦吠,豎屏(2)橫屏(2)水平(2)虱疏,在執(zhí)行橫豎屏轉(zhuǎn)換的時候橫豎屏狀態(tài)下頁面布局是沒有問題的惹骂,水平狀態(tài)下,頁面布局就出現(xiàn)問題了做瞪,為了避免頁面豎屏对粪,設(shè)備水平放置,頁面橫屏装蓬,設(shè)備水平放置著拭,的尷尬,個人建議用第二種方法牍帚,通過查看當(dāng)前電池條的狀態(tài)來確定儡遮。
四:個別頁面單獨設(shè)置橫豎屏
方法:在APPdelegate總定義一個allowRotate,
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
? ? if (_allowRotate == 1) {
? ? ? ? ? return UIInterfaceOrientationMaskAll;
? ? }
? ? else{
? ? ? ? ? return UIInterfaceOrientationMaskPortrait;
? ? }
五:上架過程補充。