关于屏幕旋转的一些心得

横屏注意事项:

1、首先,由于苹果公司的限制,我不太推荐强制横屏。因为你搞不过一个公司,所以说你想在某些界面横屏,你的应用就必须要去同时支持横屏、竖屏(你可以在应用的General中设置)。

2、你需要去解决状态栏的问题,不能你的界面转过来了,状态栏还是竖屏的样式吧。那么你就需要在Info.plist中设置View controller-based status bar appearanceiew属性为YES(或者不设置),这样你就可以在每个ViewController中设置状态栏显示/隐藏、白色/黑色等属性。

//状态栏隐藏/显示

- (BOOL)prefersStatusBarHidden {

return NO;

}

3、旋转问题,首先需要改变横竖屏的界面,最好是用Present模态推送过去的,其次你需要在每个ViewController中设置一个方法

//屏幕旋转支持的方向

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

return UIInterfaceOrientationMaskLandscapeLeft;(你支持哪个方向就可以填写哪个)

}

4、其实到这个地方你已经可以畅游横竖屏切换了,but嘿嘿。假如你的项目中有很多界面,并且那些界面只想支持单一的方向,但是你在General中的设置是支持很多界面的,那么你就需要每个界面都写上面那个方法了,我不敢想象这种太美的画面。

5、这时你就需要一个UIViewController根类,你项目中的所有界面都可以继承它,你把上述几种方法放置进去之后,子类默认继承这些方法,如果哪个界面需要修改,你在那个界面覆盖掉父类的方法就可以了。这样你就不需要在每个界面中设置上述方法了。

6、项目下载地址https://github.com/jizhidejingmo/git-/tree/master

PS:每个纯原生项目,最好是有一个UIViewController基类,一个UINavigationController基类,一个UITabbarController基类,用于控制全局的样式^_^^_^^_^,例如背景色等

时间: 2024-11-07 02:45:57

关于屏幕旋转的一些心得的相关文章

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