iOS有关屏幕的方法大全

原创 2015年11月19日 11:51:26

在iOS应用开发过程中,经常会遇到设置屏幕方向,或者根据屏幕方向改变界面的时候,所以现在就来说一下屏幕方向的那些事情。

关于方向,经常会遇到以下的两个对象:

UIViewController 实例通过实现可选的shouldAutorotateToInterfaceOrientation:方法决定是否响应iPhone方向。此方法根据你是否需要支持自动旋转到某个给定方向,反悔YES或NO。要收允许自动旋转到所有可能的方向,只需要返回YES。

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

    return  YES;

}


1.UIDeviceOrientation(机器设备的方向)

==================================

    UIDeviceOrientationUnknown //未知方向

    UIDeviceOrientationPortrait, //设备直立,home按钮在下

    UIDeviceOrientationPortraitUpsideDown,  //设备直立,home按钮在上

    UIDeviceOrientationLandscapeLeft,       //设备横置,home按钮在右

    UIDeviceOrientationLandscapeRight,      //设备横置, home按钮在左

    UIDeviceOrientationFaceUp,              //设备平放,屏幕朝上

    UIDeviceOrientationFaceDown             //设备平放,屏幕朝下

==================================

2.UIInterfaceOrientation(界面的方向,iOS6之后可以去看UIInterfaceOrientationMask

==================================

    UIInterfaceOrientationPortrait //竖向,home按钮在下

    UIInterfaceOrientationPortraitUpsideDown //竖向,home按钮在上

    UIInterfaceOrientationLandscapeLeft //横向,home按钮在左

    UIInterfaceOrientationLandscapeRight //横向,home按钮在右

==================================

界面的开发主要使用UIInterfaceOrientation

一.获取当前界面方向

二.界面方向改变时,会调用的方法

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {}//视图旋转之前自动调用

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {}//旋转方向发生改变时自动调用

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {}//视图旋转完成之后自动调用

三.设置界面支持的方向

1.全局设置

1.1工程设置(XCode5为例)

Targets->General->DeploymentInfo->Device Orientation进行设置

1.2在AppDelegate.m中设置(iOS6之后)

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{

    return UIInterfaceOrientationMaskPortrait;

}


2.一般情况下设置单个界面

iOS6之后:

-(BOOL)shouldAutorotate{

    return YES;

}//是否支持旋转

-(NSUInteger)supportedInterfaceOrientations{

    return UIInterfaceOrientationMaskLandscapeRight;

}//支持的方向

iOS6之前:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{

    return toInterfaceOrientation == UIInterfaceOrientationLandscapeRight;

}


3.特例

引用了UINavigationController,需要改变的视图的是UINavigationController的RootViewController

那么需要新建一个UINavigationController的子类(当然要设置改变的视图是该子类的RootViewController),在这个子类里面添加下面的方法

- (BOOL)shouldAutorotate    
{    
    return self.topViewController.shouldAutorotate;    
}    
    
- (NSUInteger)supportedInterfaceOrientations    
{    
    return self.topViewController.supportedInterfaceOrientations;    
}  

iOS之屏幕旋转调用的方法

屏幕旋转调用的方法
  • u011146511
  • u011146511
  • 2016年05月12日 01:19
  • 1830

iOS屏幕适配的几种方式

在iOS开发中,会经常碰到屏幕适配的问题,下面来说一下自己在项目开发中遇到的几种屏幕适配的方式. 第一种: 利用宽高比,在不同的屏幕中来进行对控件的位置与控件的宽高进行等比例缩放.选定一个型号的屏...
  • anywhereIOS
  • anywhereIOS
  • 2016年07月23日 23:48
  • 8703

iOS 屏幕旋转问题总结

1、两个Orientation1.1设备的物理方向(UIDeviceOrientation) typedef NS_ENUM(NSInteger, UIDeviceOrientation) { ...
  • sinat_29301173
  • sinat_29301173
  • 2017年02月24日 12:16
  • 861

ios 屏幕旋转大全

如果希望所有界面不可以旋转 则可也在Target —> general 的 device orientation 禁止掉就可以了 或者也可以在AppDelegate中增加,这个方法可以禁止横屏 ...
  • qiaofu_16
  • qiaofu_16
  • 2014年06月20日 11:16
  • 298

详解iOS开发中处理屏幕旋转的几种方法

前言: 最近在写PhotoBrowser的时候, 发现浏览图片的时候需要适配屏幕的旋转.于是研究一下, 发现有几种处理方法和一些注意点. 我们希望在屏幕旋转的时候,界面的布局能够相应的变化来适配新的布...
  • zerojswift
  • zerojswift
  • 2016年05月25日 20:20
  • 6512

【IOS 开发学习总结-OC-61】IOS 的自动旋转

【IOS 开发学习总结-OC-61】IOS 的自动旋转很多的应用都支持横屏和竖屏2种运行模式。模式切换时会自动调整界面,以保证在2种模式下应用都运行良好。——这就是自动旋转机制。当然这2种方式,根据需...
  • senwin2009
  • senwin2009
  • 2015年10月21日 20:30
  • 1633

iOS视网膜(Retina)屏幕的适配方法

转自:http://www.penddy.com/mobile-client-knowledge-processing-1-ios-retinal-adaptation-of-the-retina-s...
  • zhangkongzhongyun
  • zhangkongzhongyun
  • 2013年04月15日 18:53
  • 2821

UITableView的cell的释放、内容消失等的思考总结

首先问题是在tableview的某个cell上面放了一个UITextField,然后textField填写的东西划出屏幕,再回来内容就消失了。后来知道是cell被替换(不是释放)了,然后又重新构建了一...
  • u014131398
  • u014131398
  • 2014年11月29日 09:16
  • 5797

IOS屏幕快照,uiview快照

+ (UIImage *) imageWithView:(UIView *)selectView { UIGraphicsBeginImageContextWithOptions(select...
  • zttjhm
  • zttjhm
  • 2015年01月29日 13:40
  • 1950

iOS屏幕快照规范

from: http://help.apple.com/itunes-connect/developer/#/devd274dd925 您必须为所有设备类型提供一组屏幕快照。对于 iOS...
  • birthmarkqiqi
  • birthmarkqiqi
  • 2017年08月03日 17:49
  • 682
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS有关屏幕的方法大全
举报原因:
原因补充:

(最多只允许输入30个字)