您的位置:首页 > 产品设计 > UI/UE

[IOS开发教程] IOS UIDevice & IOS检测屏幕旋转实例

2015-12-26 17:11 711 查看
UIDevice类提供了一个单例实例代表当前的设备。从这个实例中可以获得的信息设备,比如操作系统名称、电池电量值(batteryLevel)、电池状态(batteryState)、设备的类型(model,比如iPod、iPhone等)、设备的系统(systemVersion)

屏幕的旋转朝向可以通过 [[UIDevice currentDevice]orientation] http://www.kmnk03.com/hxpfk/qcd/392.html判断,orientation是个Integer类型,每个值表示相应的朝向,必须在调用beginGeneratingDeviceOrientationNotifications方法后,此orientation属性才有效,否则一直是0。
//

// ViewController.m

//

#import "ViewController.h"

@interface ViewController ()

/**

* UIImageView

*/

@property(http://www.kmnk03.com/hxpfk/qcd/393.htmlnonatomic,strong)UIImageView *imageView;

@end

@implementation ViewController

- (void)handleDeviceOrientationhttp://www.kmnk03.com/hxpfk/qcd/394.htmlDidChange:(UIInterfaceOrientation)interfaceOrientation

{

//1.获取 当前设备 实例

UIDevice *device = [UIDevice currentDevice] ;

/**

* 2.取得当前Device的方向,Device的方向类型为Integer

*

* 必须调用beginGeneratingDeviceOrientationNotifications方法后,此http://www.kmnk03.com/hxpfk/qcd/395.htmlorientation属性才有效,否则一直是0。orientation用于判断设备的朝向,与应用UI方向无关

*

* @param device.orientation

*

*/

switch (device.orientation) {

case UIDeviceOrientationFaceUp:

NSLog(@"屏幕朝上平躺");

break;http://www.kmnk03.com/hxpfk/qcd/396.html

case UIDeviceOrientationFaceDown:

NSLog(@"屏幕朝下平躺");

break;

//系統無法判斷目前Device的方向,有可能是斜置

case UIDeviceOrientationUnknown:

NSLog(@"未知方向");

break;http://www.kmnk03.com/hxpfk/qcd/397.html

case UIDeviceOrientationLandscapeLeft:

NSLog(@"屏幕向左横置");

break;

case UIDeviceOrientationLandscapeRight:

NSLog(@"屏幕向右橫置");

break;http://www.kmnk03.com/hxpfk/qcd/398.html

case UIDeviceOrientationPortrait:

NSLog(@"屏幕直立");

break;

case UIDeviceOrientationPortraitUpsideDown:

NSLog(@"屏幕直立,上下顛倒");

break;

default:

NSLog(@"无法辨识");

break;http://www.kmnk03.com/hxpfk/qcd/399.html

}

}

- (void)viewDidLoad {

//设备名称 e.g. "My iPhone"

NSString *strName = [[UIDevice currentDevice] name];

NSLog(@"设备名称:%@", strName);http://www.kmnk03.com/hxpfk/qcd/400.html

/**

* 系统名称 e.g. @"iOS"

*/

NSString *strSysName = [[UIDevice currentDevice] systemName];

NSLog(@"系统名称:%@", strSysName);

/**

* 系统版本号 e.g. @"4.0"

*/

NSString *strSysVersion = [[UIDevice currentDevice] systemVersion];

NSLog(@"系统版本号:%@", strSysVersion);

/**

* 设备类型 e.g. @"iPhone", @"iPod touch"

*/

NSString *strModel = [[UIDevice currentDevice] model];

NSLog(@"设备类型:%@", strModel);

/**

* 本地设备模式 localized version of model

*/

NSString *strLocModel = [[UIDevice currentDevice] localizedModel];

NSLog(@"本地设备模式:%@", strLocModel);

/**

* UUID  可用于唯一地标识该设备

*/http://www.kmnk03.com/hxpfk/qcd/401.html

NSUUID *identifierForVendor = [[UIDevice currentDevice] identifierForVendor];

NSLog(@"UUID:%@", identifierForVendor.UUIDString);

/**

* UIImage 对象

*/

UIImage *image = [UIImage imageNamed:@"scroll.jpg"];

self.imageView.image = image;

// 设置图片范围

CGFloat imageH = image.size.height;

CGFloat imageW = image.size.width;

CGFloat imageX = 0;

CGFloat imageY = 0;

self.imageView.frame = CGRectMake(imageX, imageY, imageW, imageH);

[self.view addSubview:self.imageView];

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

}

-(void)viewDidAppear:(BOOL)animated

{

/**

* 开始生成 设备旋转 通知

*/

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

/**

* 添加 设备旋转 通知

*

* @param handleDeviceOrientationDidChange: handleDeviceOrientationDidChange: description

*

* @return return value description

*/

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(handleDeviceOrientationDidChange:)

name:UIDeviceOrientationDidChangeNotification

object:nil

];

}

-(void)viewDidDisappear:(BOOL)animated

{

/**

* 销毁 设备旋转 通知

*

* @return return value description

*/

[[NSNotificationCenter defaultCenter] removeObserver:self

name:UIDeviceOrientationDidChangeNotification

object:nil

];

/**

* 结束 设备旋转通知

*

* @return return value description

*/

[[UIDevice currentDevice]endGeneratingDeviceOrientationNotifications];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

#pragma 懒加载

- (UIImageView *)imageView

{

if (!_imageView) {

_imageView = [[UIImageView alloc] init];

}

return _imageView;

}

kmnk03.com

www.kmnk03.c0m

@end

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: