初识屏幕旋转

在ViewController文件中我们可以做以下事情:

 1 #pragma mark - 检测屏幕旋转
 2 // 屏幕旋转所支持的样式
 3 - (UIInterfaceOrientationMask)supportedInterfaceOrientations {
 4
 5     // 支持所有的方向
 6     return UIInterfaceOrientationMaskAll;
 7 }
 8
 9 // 如果想要在屏幕旋转的时候做一些操作,操作的方法写在这里(例如:视频播放器横竖屏切换的动画)
10 - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
11
12     NSLog(@"旋转");
13 }

在对应的View文件中我们可以通过重写layoutSubviews来实现屏幕适配:

 1 #pragma mark - 屏幕旋转,即适配
 2 // 布局子视图:当屏幕旋转的时候,可以重新布局子视图的位置
 3 // 假如我们的view上有一个按钮,下面通过改变该按钮的frame实现适配
 4 - (void)layoutSubviews {
 5
 6     // 如果是竖屏,保持原来的尺寸
 7     if ([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait) {
 8         self.button.frame = CGRectMake(50, 200, self.frame.size.width - 100, 30);
 9     } else {
10         // 如果是横屏,改变尺寸
11         self.button.frame = CGRectMake(50, 200, self.frame.size.width - 100, 30);
12     }
13 }
时间: 2024-11-06 01:36:10

初识屏幕旋转的相关文章

Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案

出处:http://blog.csdn.net/lmj623565791/article/details/37936275 1.概述 众所周知,Activity在不明确指定屏幕方向和configChanges时,当用户旋转屏幕会重新启动.当然了,应对这种情况,Android给出了几种方案: a.如果是少量数据,可以通过onSaveInstanceState()和onRestoreInstanceState()进行保存与恢复. Android会在销毁你的Activity之前调用onSaveInst

1016-03-父子控制器-----屏幕旋转事件的传递

1. ARC里面默认情况下所有指针都是强指针. 2. 在演示 设置两个控制器的关系为 父子控制器的关系的时候,将一个控制器B 的view加到 A控制器的view上去的时候,如果A.B不为父子控制器的关系时,旋转屏幕 的时候 B控制器是不能监听到屏幕的旋转的.只有A控制器可以监听到屏幕旋转. 3. 屏幕旋转事件是由窗口发出的.窗口会将事件传给它的根控制器. /** 监听旋转 */ - (void)willRotateToInterfaceOrientation:(UIInterfaceOrient

ios(ipad,iphone)屏幕旋转检测通用方法

在特别的场景下,需要针对屏幕旋转作特殊处理.在ios系统下实现相关的功能还是比较方便的. 我下面介绍两种方法: 1.注册UIApplicationDidChangeStatusBarOrientationNotification通知(举例:在一个viewcontroller类的viewdidload中注册该通知),示例代码如下: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarO

屏幕旋转学习笔记

加速计是整个IOS屏幕旋转的基础,依赖加速计,设备才可以判断出当前的设备方向,IOS系统共定义了以下七种设备方向: typedef NS_ENUM(NSInteger, UIDeviceOrientation) {     UIDeviceOrientationUnknown,     UIDeviceOrientationPortrait,            // Device oriented vertically, home button on the bottom     UIDev

iOS屏幕旋转方向的相关方法

在iOS应用开发过程中,经常会遇到设置屏幕方向,或者根据屏幕方向改变界面的时候,所以现在就来说一下屏幕方向的那些事情. 关于方向,经常会遇到以下的两个对象: 1.UIDeviceOrientation(机器设备的方向) ================================== UIDeviceOrientationUnknown //未知方向 UIDeviceOrientationPortrait, //设备直立,home按钮在下 UIDeviceOrientationPortrai

iOS学习笔记(3)— 屏幕旋转

iOS学习笔记(3)— 屏幕旋转 一.屏幕旋转机制: iOS通过加速计判断当前的设备方向和屏幕旋转.当加速计检测到方向变化的时候,屏幕旋转的流程如下: 1.设备旋转时,系统接收到旋转事件. 2.系统将旋转事件通过AppDelegate通知当前的主Window. 3.window通知它的rootViewController. 4.rootViewController判断所支持的旋转方向,完成旋转. iOS系统中屏幕旋转事件没有像触碰事件那样进行hitTest,所以只有rootViewControl

屏幕旋转

视图控制器本身能检测到屏幕的旋转,如果要处理屏幕旋转,需要重写方法 supportedInterfaceOrientations(设置设备支持旋转的方法, 如果不添加,视图控制器将无法检测到屏幕的旋转) 旋转后键盘收回 的方法 - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator 视图控制器会自动

HTML5-javascript屏幕旋转事件:onorientationchange

/* 屏幕旋转事件:onorientationchange 添加屏幕旋转事件侦听,可随时发现屏幕旋转状态(左旋.右旋还是没旋) */ // 判断屏幕是否旋转 function orientationChange() { switch(window.orientation) { case 0: alert("肖像模式 0,screen-width: " + screen.width + "; screen-height:" + screen.height); brea

牛B的swift屏幕旋转经验终结者(OC统一思路)

牛B的swift屏幕旋转经验终结者(OC统一思路) 1.AppDelegate (1)定义变量 var blockRotation: Bool = false (2)定义方法 Swift代码 func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask { if self.blockRotat