手动设置屏幕的方向或者称之为旋转

韩阳成
2023-12-01

在实际项目中我们会碰到个别试图需要做出横屏竖屏等状态,

在之前我们对一个viewController的基类重写它的三个方法确实实现了,但是现在不满足需求了。

这个时候我们需要在appDelegate中重写这个方法

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window

根据你的实际需要做出判断来返回方向


然后在你的试图里面改变方向即可例如

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window

{

return UIInterfaceOrientationMaskLandscapeRight;

}



在viewController 的viewWillAppear就可以,

-(void)viewWillAppear:(BOOL)animated

{

    [super viewWillAppear:animated];

    [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationPortrait] forKey:@"orientation"];//这句话是防止手动先把设备置为横屏,导致下面的语句失效.

    [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationLandscapeLeft] forKey:@"orientation"];

}

以上有不足之处请大家多多指教

 类似资料: