关于设置iOS横竖屏的两种方式(转载)

iPhone的横屏竖屏针对iOS系统版本分为两种开发方式: 一种是iOS 6之前的使用模式 一种是iOS6的新模式. 两者的区别还是蛮大的.

1:iOS6之前通常使用 shouldAutorotateToInterfaceOrientation 来单独控制某个UIViewController的方向,需要哪个viewController支持旋转,只需要重写shouldAutorotateToInterfaceOrientation方法。如下示例,设置以后,屏幕被旋转时只支持横屏转换:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

return UIInterfaceOrientationIsLandscape(interfaceOrientation);

}

iOS6之后使用如下两个方法控制自动旋转,分别是:

- (BOOL)shouldAutorotate

{

NSLog(@"让不让我旋转?");

return YES;

}

- (NSUInteger)supportedInterfaceOrientations {

NSLog(@"让我旋转哪些方向");

return UIInterfaceOrientationMaskAllButUpsideDown;

}

那么在自动旋转触发后,系统会自动调用另外两个方法:

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

[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];

NSLog(@"将要旋转了?");

}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {

[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];

NSLog(@"如果让我旋转,我已经旋转完了!");

}

2:让程序第一次启动时立刻显示横屏还是竖屏的方式

如果是iOS6之前,下面设置的设备支持方向可在应用里面再被修改

如果是iOS6以后,会做为硬性条件,也就是如果设置了以后,应用里面的代码也无法再使用这个方向

3:传说中的私有API实现切换ViewController强制横屏的方式

if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {

[[UIDevice currentDevice] performSelector:@selector(setOrientation:)

withObject:(id)UIInterfaceOrientationLandscapeRight];

}

4:使用xib进行界面设计时,改变xib的横竖显示方式

时间: 2024-08-12 08:09:33

关于设置iOS横竖屏的两种方式(转载)的相关文章

iOS 自定义layer的两种方式

在iOS中,你能看得见摸得着的东西基本都是UIView,比如一个按钮,一个标签,一个文本输入框,这些都是UIView: 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层 在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个图层 @property(nonatomic,readonly,retain) CALayer *layer; 每一个UIView内部都默认关联一个CALayer,我们可称这个Laye

【iOS开发-31】UITabBar背景、icon图标颜色、被选中背景设置以及隐藏UITabBar的两种方式

一.对UITabBar背景和icon图标的一些设置 (1)由于直接给UITabBar设置的背景颜色显示的不纯.半透明的感觉,所以,有时候我们能够直接利用纯色的图片作为背景达到想要的效果. (2)给icon图片改变颜色也是重要的有用方法之中的一个,默认的时蓝色. 在AppDelegate.m文件里:(1个导航控制器和5个视图控制器) - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSD

iOS 拨打电话的两种方式

第一种方式 NSString *phone = @"88888888" if (phone != nil) { NSString *telUrl = [NSString stringWithFormat:@"telprompt:%@",phone]; NSURL *url = [[NSURL alloc] initWithString:telUrl]; [[UIApplication sharedApplication] openURL:url]; } 第二种方式

Autofac 设置方法拦截器的两种方式

前提 1.Nuget安装Autofac 4.0以下版本  4.0及4.0 以上版本暂时没找到合适的方案 2.Nuget安装Autofac.Extras.DynamicProxy2 3.创建一个类似下面代码得 拦截类 public class TestInterceptor : IInterceptor { public void Intercept(IInvocation invocation) { string c = string.Format("Calling method {0} wit

iOS 单例模式实现的两种方式

简述面向对象应用程序中的单例类(singleton class)总是返回自己的同一个实例.它提供了对象所提供的资源的全局访问点.与这类设计相关的设计模式称为单例模式. 用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问. 这个方法应该是静态方法,因为让类的实例去生成另一个唯一实例毫无意义. 2.2 何时使用单例模式(1)类只能有一个实例,并且必须从一个为人熟知的访问点对其进行访问,比如工厂方法: (2)这个唯一的实例只能通过子类化进行扩展,而且扩展的对象不会破坏客户端代码.

iOS-动画的两种方式

第一种   头尾式动画 [UIView beginAnimations:nil context:(nil)]; [UIView setAnimationDuration:2]; self.btnIcon.center = centerPoint; [UIView commitAnimations]; [UIView beginAnimations:nil context:(nil)]; [UIView setAnimationDuration:2]; self.btnIcon.bounds =

IOS文件操作的两种方式:NSFileManager操作和流操作

1.文件的创建 -(IBAction) CreateFile { //对于错误信息 NSError *error; // 创建文件管理器 NSFileManager *fileMgr = [NSFileManager defaultManager]; //指向文件目录 NSString *documentsDirectory= [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; //创建一个目录 [[NSFi

iOS退出键盘的两种方式

1,可以让叫出键盘的那个控件,退出第一响应者; 例如:textField叫出的键盘,那么就可以调用textField.resignFirstResponder,达到谁叫出的键盘谁退回去 2,可以让叫出键盘的那个控件的父类控件退出键盘: 例如,textField叫出的键盘,它的父类控件是View,那么就调用:[View endEditing:YES]

横竖屏事件响应(viewWillLayoutSubviews和通知)两种方式

转载:http://blog.csdn.net/nogodoss/article/details/17246489 最近搞横竖屏,获得一些心得,特记录下来. 做横竖屏最重要的是确定横竖屏响应的接口.目前我知道的有两种方式 : 1.使用通知. - (void)viewDidLoad { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_orientationDidChange:)name:UIDev