iOS界面设置竖屏,个别界面强制横屏

项目需要,只有某个界面需要横屏显示,其它全只支持竖屏显示即可,网上资料很多,但是试过都不好用,最后发现是因为我的项目UIViewController外层是UINavigationVeiwController,只在UIViewController重载supportedInterfaceOrientations与shouldAutorotate 方法是不行的。

下面说明具体设置步骤:(参考http://www.cocoachina.com/bbs/read.php?tid-244095.html

Step 1:Info.plist中设置Supported interface orientations 为所有支持的方向,我是这样设置的:

    

Step 2:在自定义的navigationViewController中添加属性:

@property (nonatomic, assign) BOOL supportLandscape;

 初始化:

 

- (id)init
{
	if (self = [super init])
	{
		[self setup];
	}

	return self;
}

- (void)setup
{
	//其他设置
        ...
    	self.supportLandscape = NO;
}

  

 重载supportedInterfaceOrientations方法:

- (UIInterfaceOrientationMask)navigationControllerSupportedInterfaceOrientations:(UINavigationController *)navigationController{
    if(self.supportLandscape){
        return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeRight;
    }else{
        return UIInterfaceOrientationMaskPortrait;
    }
}

Step 3:我的项目中所有viewController都是由navigationController控制的,所以,只需要在需要支持横屏的viewController中进行设置就好了:

-(void) viewDidAppear:(BOOL)animated{
    [SlideNavigationController sharedInstance].supportLandscape = YES;
}

-(void) viewDidDisappear:(BOOL)animated{
    [SlideNavigationController sharedInstance].supportLandscape = NO;
}

 亲测好用~

时间: 2024-11-08 23:00:22

iOS界面设置竖屏,个别界面强制横屏的相关文章

ios 相机界面强制横屏

IOS调用系统的相机默认是竖屏的,网上找了很多方法强制横屏都无效,以下代码经测试兼容ios78 自定义一个UIImagePickerController并且覆盖以下方法: -(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return UIInterfaceOrientationLandscapeLeft; } - (NSUInteger)supportedInterfaceOrientations{

IOS竖屏应用单个页面横屏的解决办法

昨天朋友问我,怎么实现在竖屏的应用里,显示一个横屏的应用,由于也没做过 就说不知道了,但是我觉得会有这样的API ,因为我手机里就安装有这种类型的软件 今天早上起来,就想做一个Dome出来,惯例的是查找资料,测试是否可以使用,但是 查找了都写的不是很清楚,很容易造成没法实现想要的效果,所以想重新写过一个 希望能帮到有这个需求的朋友.(这个没什么经验,的是照着网上的资料拼凑起来, 如果有错误,请见谅,有更好的办法也可以告诉我) 实现的效果: 页面大部分是竖屏,个别页面可以旋转手机时页面变为横屏(其

iOS UIWebView 全屏播放视频, 需横屏,单app不支持横屏, 解决办法

原文  http://blog.csdn.net/alincexiaohao/article/details/39294523 参考blog: UIWebView中视频播放屏幕自动旋转,app不支持旋转但是某一个页面需要旋转等 使用UIWebView播放视频时捕捉全屏播放事件 iOS两个强制旋转屏幕的方法 IOS:屏幕旋转与Transform 在使用UIWebView播放视频的时候,想到视频应该能够旋转播放.但是app本身是不支持旋转的,所以把代码记录如下,引申出来的答案就是:所有的你想要进行页

ios系统 竖屏拍照 canvas处理后 图片旋转(利用exif.js解决ios手机上传竖拍照片旋转90度问题)

转:https://www.cnblogs.com/lovelgx/articles/8656615.html ---恢复内容开始--- 问题:html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 解决方法:利用exif.js解决ios手机上传竖拍照片旋转90度问题 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非横拍的ios照片进行角度旋转修正. 利用exif.js读取照片的拍摄信息,详见 htt

android 强制设置横屏 判断是横屏还是竖屏

判断activity 是横屏还是竖屏  方法 1: //根据设备配置信息 Configuration cf= this.getResources().getConfiguration(); //获取设置的配置信息 int ori = cf.orientation ; //获取屏幕方向 if(ori == cf.ORIENTATION_LANDSCAPE){   //横屏 }else if(ori == cf.ORIENTATION_PORTRAIT){  //竖屏 }   方法2: 通过设备分辨

Android之横屏竖屏显示问题

1.采用不同的布局文件 res文件下 选中layout  Ctrl+C 选中res Ctrl +V 创建layout-land横屏显示的layout 同理创建layout-port竖屏显示的layout 图片横屏竖屏 选中drawable-xhdpi Ctrl+C 选中res Ctrl + V 创建drawable-land-xhdpi 其他分辨率的也一样 字符串 values-land values-port 另外:(layout文件夹也可以使用hdip,mdip等关键字命名如layout-h

移动端 竖屏切换横屏时候字体变大

最近遇到ios设备竖屏切换到横屏时候,字体会发生变化的情况.用以下方法可以解决此类问题 -webkit-text-size-adjust : none ; -moz-text-size-adjust : none ; -ms-text-size-adjust : none ; text-size-adjust : none 这样就能禁止当手机由竖屏转向横屏的时内容中的文字自动调整大小,各浏览器下的私有属性为-webkit-text-size-adjust,-moz-text-size-adjus

CSS3判断手机横屏竖屏

原理: 当用户旋转屏幕的时候,会进入到你的监听方法中,然后通过window.orientation来获取当前屏幕的状态:0 - 竖屏90 - 逆时针旋转横屏-90 - 顺时针旋转横屏180 - 竖屏,上下颠倒 如果你不希望用户使用横屏方式查看你的网页,你可以在设备旋转时间监听里面对body使用CSS3里面的transition中的旋转来保持页面竖向. 移动设备上的页面,当屏幕旋转的时候会有一个orientationchange事件.你可以给body元素增加此事件的监听: <body onorie

cocos2d-x 设置屏幕方向 横屏 || 竖屏

cocos2d-x 设置屏幕方向 横屏 || 竖屏 需要根据各个平台分别进行设置. android 修改项目根目录 proj.android\AndroidManifest.xml 文件中的android:screenOrientation属性值,portrait 为竖屏,landscape为横屏 Windows 直接用cocos引擎接口中的GLView::createWithRect方法指定窗口大小,需要注意的是,该方法在android环境下会报错,并导致程序崩溃,所以我们需要在代码里面这么写