iOS 橫屏問題

第一種

- (BOOL)shouldAutorotate {
    
    return NO;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    
    return UIInterfaceOrientationMaskLandscape;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {

    return UIInterfaceOrientationLandscapeRight;
}

第二種把view橫屏

 UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
    [keyWindow addSubview:self];
    
    CGFloat duration = [UIApplication sharedApplication].statusBarOrientationAnimationDuration;
    [UIView animateWithDuration:duration animations:^{
        
        if (orientation == UIInterfaceOrientationLandscapeLeft)
        {
            self.transform = CGAffineTransformMakeRotation(-M_PI/2);
        }
        else if (orientation == UIInterfaceOrientationLandscapeRight)
        {
            self.transform = CGAffineTransformMakeRotation(M_PI/2);
        }
        
    }completion:^(BOOL finished) {
        
    }];
    
    self.frame = keyWindow.bounds;
    [self setNeedsLayout];
    [self layoutIfNeeded];

第三種

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow * window;

@property (nonatomic, assign) BOOL allowRotation;//允許旋轉(zhuǎn)
@property (nonatomic, assign) BOOL rightRotation;//右側(cè)旋轉(zhuǎn)


@end
@implementation AppDelegate

-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
   
   if (self.allowRotation)
   {
     return UIInterfaceOrientationMaskPortrait|UIInterfaceOrientationMaskLandscapeLeft|UIInterfaceOrientationMaskLandscapeRight;
   }
   else if(self.rightRotation)
   {
       return UIInterfaceOrientationMaskLandscapeRight;
   }
   return UIInterfaceOrientationMaskPortrait;
}
@end

//在對應(yīng)的viewController
//全屏
AppDelegate *appdelegate=(AppDelegate *)[UIApplication sharedApplication].delegate;
   appdelegate.rightRotation=YES;
   [appdelegate application:[UIApplication sharedApplication] supportedInterfaceOrientationsForWindow:self.view.window];
   //強制翻轉(zhuǎn)屏幕,Home鍵在右邊。
   [[UIDevice currentDevice] setValue:@(UIInterfaceOrientationLandscapeRight) forKey:@"orientation"];
   //刷新
   [UIViewController attemptRotationToDeviceOrientation];

//退出全屏
AppDelegate *appdelegate=(AppDelegate *)[UIApplication sharedApplication].delegate;
   appdelegate.rightRotation=NO;
   [appdelegate application:[UIApplication sharedApplication] supportedInterfaceOrientationsForWindow:self.view.window];
   //強制翻轉(zhuǎn)屏幕//UIDeviceOrientationPortrait
   [[UIDevice currentDevice] setValue:@(UIInterfaceOrientationPortrait) forKey:@"orientation"];
   //刷新
   [UIViewController attemptRotationToDeviceOrientation];

?著作權(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)容