iOS 横竖屏切换及某个界面横屏

进入正文前先认识几个概念

portrait  竖屏(Home键在下边)

upside down  竖屏(Home键在上边)

landscape  横屏   |landscape left  横屏Home键在左边

|landscape right 横屏Home键在右边

1、先让窗口支持横竖屏

两种方法可以修改窗口对横竖屏的支持

一种,代码控制

在appDelegate中重写方法,比如

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

if(self.isShouAutoRotate) {

returnUIInterfaceOrientationMaskAll;

}

returnUIInterfaceOrientationMaskPortrait;

}

另一种就是,在【General】-->【Device Orientation】中设置好支持的方向

如图

两种方法的利弊,读者自己推敲。

2、下面认识三个方法

//是否自动旋转

- (BOOL)shouldAutorotate {

returnYES;

}

//返回支持的方向

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

returnUIInterfaceOrientationMaskLandscapeRight;

}

//切换横竖屏时,可以重写这个方法,来重新布局界面

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {}

3、个别界面横屏

第一种处理方式:   1中对应的设置支持横屏完成后,在相应的控制器直接实现2中的方法二

第二种处理方式:   1中对应的设置支持横屏完成后,在相应控制器的viewDidLoad方法中强制设置设备朝向,代码如下:

NSNumber*value = [NSNumbernumberWithInt:4];

[[UIDevicecurrentDevice]setValue:valueforKey:@"orientation"];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS 中横竖屏切换的功能,在开发iOS app中总能遇到。以前看过几次,感觉简单,但是没有敲过代码实现,最近又碰...
    零度_不结冰阅读 6,641评论 0 0
  • 以下是复制别人的文章过来的,目的是保留下这个方法,便于今后查阅使用,该文章不会用于任何商业用途,该文章的出处:ht...
    鸿蒙一笑万物开阅读 12,740评论 0 3
  • Android开发中,大多APP可能根据实际情况直接将APP的界面方向设死了,或竖屏或横屏。但是,我们还是会遇到横...
    yoosir阅读 50,812评论 7 112
  • 1.监听屏幕旋转方向 在处理iOS横竖屏时,经常会和UIDeviceOrientation、UIInterface...
    彬至睢阳阅读 7,282评论 1 6