获取屏幕旋转的通知

在viewcontroller里加上这句:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarOrientationChange:)                                       name:UIDeviceOrientationDidChangeNotification object:nil];//屏幕旋转的通知

在通知的方法里加上这句:

-(void)statusBarOrientationChange:(NSNotification*)no{

    NSDictionary* ntfDict = [no userInfo];
    self.collectionView.frame = CGRectMake(0, 0, DF_WIDTH, DF_HEIGHT);//如果要重置view的大小的话,一定要加上这句
    UIDeviceOrientation interfaceOrientation = [UIDevice currentDevice].orientation;
        if (interfaceOrientation == UIDeviceOrientationPortrait || interfaceOrientation == UIDeviceOrientationPortraitUpsideDown) {
            //翻转为竖屏时
            count = 3;
            [self.collectionView reloadData];

        }else if (interfaceOrientation==UIDeviceOrientationLandscapeLeft || interfaceOrientation == UIDeviceOrientationLandscapeRight) {
            //翻转为横屏时
            count = 5;
            [self.collectionView reloadData];
        }
}

更全总结: [iOS]关于iOS中界面视图横屏/竖屏切换的问题总结:http://blog.csdn.net/lqq200912408/article/details/51088987

时间: 2024-10-11 13:32:53

获取屏幕旋转的通知的相关文章

willRotateToInterfaceOrientation 屏幕旋转

/* 1.屏幕发生旋转后, 这个旋转事件会先传递给window的rootViewController(窗口的根控制器) 2.rootViewController又会将这个旋转事件传递给它的子控制器 */ /** * 屏幕即将旋转的时候调用 */ - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { NSL

ios 屏幕,状态栏(statusbar),程序窗口 尺寸获取和屏幕旋转时的尺寸变化

app尺寸,去掉状态栏 CGRect r = [ UIScreen mainScreen ].applicationFrame; 这个尺寸不会随着屏幕旋转而交换宽高,但屏幕旋转后,会自动修改宽高减掉状态栏高度. 竖屏时(4寸):x=0, y=20, width=320, height=548 横屏时(4寸):x=0,y=0, width=300, height=568 屏幕尺寸 CGRect rx = [ UIScreen mainScreen ].bounds; (4寸)rx=x=0, y=0

IOS UIDevice & IOS检测屏幕旋转实例

一 UIDevice 简介 UIDevice类提供了一个单例实例代表当前的设备.从这个实例中可以获得的信息设备,比如操作系统名称.电池电量值(batteryLevel).电池状态(batteryState).设备的类型(model,比如iPod.iPhone等).设备的系统(systemVersion) 二 获取 UIDevice 实例 通过[UIDevice currentDevice]可以获取这个单粒对象 UIDevice *device = [UIDevice currentDevice]

Android开发--教你巧妙应对屏幕旋转

Android手机支持屏幕旋转功能,手机屏幕旋转直接引发了我们的App视图变化,我们选择怎样去处理手机的翻转以及当我们的手机屏幕发生了旋转的时候我们选择何种策略去进行处理视图直接影响了我们的App的用户体验.今天我们一起来学习一下手机屏幕旋转的相关知识. 设置屏幕方向切换的属性 为了使Activity在屏幕旋转方向适应不同的场合,在AndroidManifest文件的activity标签下提供了android:screenOrientation属性用于满足不同的屏幕旋转需求. unspecifi

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

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

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