本文共 5592 字,大约阅读时间需要 18 分钟。
/* CurrentDevice.h *//* 提供两种单利创建方式 */#import#import @interface CurrentDevice : NSObject+ (instancetype)sharedDeviceManager; /* 单利 */+ (instancetype)shareCurrentDevice; /* 单利 */- (id)deviceModel;/* 类型 ipad iphone ipod */- (NSString *)getDeviceVersionInfo; /* 设备信息 */- (NSString *)correspondVersion; /* 对应的设备名 iphone5 iphone5s */@end
/* CurrentDevice.m文件 */#import "CurrentDevice.h"#include/** 需要一些c的东西 要引用这个 */@implementation CurrentDevice/* 创建单利(官方推荐使用) */+ (instancetype)shareCurrentDevice { static CurrentDevice *currentDevice = nil; if (currentDevice == nil) { currentDevice = [[CurrentDevice alloc] init]; } return currentDevice;}/* 创建单利(底层实现, 比较高端) */+ (instancetype)sharedDeviceManager { static CurrentDevice *sharedAccountManagerInstance = nil; static dispatch_once_t predicate; dispatch_once(&predicate, ^{ sharedAccountManagerInstance = [[self alloc] init]; }); return sharedAccountManagerInstance;}/* 返回设备类型 */- (id)deviceModel { NSString *deviceModel = [UIDevice currentDevice].model; return deviceModel;}/* 返回设备信息 */- (NSString *)getDeviceVersionInfo { size_t size; sysctlbyname("hw.machine", NULL, &size, NULL, 0); char *machine = malloc(size); sysctlbyname("hw.machine", machine, &size, NULL, 0); NSString *platform = [NSString stringWithFormat:@"%s", machine]; free(machine); return platform;}/* 返回对应的设备名 */- (NSString *)correspondVersion { NSString *correspondVersion = [self getDeviceVersionInfo]; if ([correspondVersion isEqualToString:@"i386"]) return@"Simulator"; if ([correspondVersion isEqualToString:@"x86_64"]) return @"Simulator"; if ([correspondVersion isEqualToString:@"iPhone1,1"]) return@"iPhone 1"; if ([correspondVersion isEqualToString:@"iPhone1,2"]) return@"iPhone 3"; if ([correspondVersion isEqualToString:@"iPhone2,1"]) return@"iPhone 3S"; if ([correspondVersion isEqualToString:@"iPhone3,1"] || [correspondVersion isEqualToString:@"iPhone3,2"]) return@"iPhone 4"; if ([correspondVersion isEqualToString:@"iPhone4,1"]) return@"iPhone 4S"; if ([correspondVersion isEqualToString:@"iPhone5,1"] || [correspondVersion isEqualToString:@"iPhone5,2"]) return @"iPhone 5"; if ([correspondVersion isEqualToString:@"iPhone5,3"] || [correspondVersion isEqualToString:@"iPhone5,4"]) return @"iPhone 5C"; if ([correspondVersion isEqualToString:@"iPhone6,1"] || [correspondVersion isEqualToString:@"iPhone6,2"]) return @"iPhone 5S"; if ([correspondVersion isEqualToString:@"iPod1,1"]) return@"iPod Touch 1"; if ([correspondVersion isEqualToString:@"iPod2,1"]) return@"iPod Touch 2"; if ([correspondVersion isEqualToString:@"iPod3,1"]) return@"iPod Touch 3"; if ([correspondVersion isEqualToString:@"iPod4,1"]) return@"iPod Touch 4"; if ([correspondVersion isEqualToString:@"iPod5,1"]) return@"iPod Touch 5"; if ([correspondVersion isEqualToString:@"iPad1,1"]) return@"iPad 1"; if ([correspondVersion isEqualToString:@"iPad2,1"] || [correspondVersion isEqualToString:@"iPad2,2"] || [correspondVersion isEqualToString:@"iPad2,3"] || [correspondVersion isEqualToString:@"iPad2,4"]) return@"iPad 2"; if ([correspondVersion isEqualToString:@"iPad2,5"] || [correspondVersion isEqualToString:@"iPad2,6"] || [correspondVersion isEqualToString:@"iPad2,7"] ) return @"iPad Mini"; if ([correspondVersion isEqualToString:@"iPad3,1"] || [correspondVersion isEqualToString:@"iPad3,2"] || [correspondVersion isEqualToString:@"iPad3,3"] || [correspondVersion isEqualToString:@"iPad3,4"] || [correspondVersion isEqualToString:@"iPad3,5"] || [correspondVersion isEqualToString:@"iPad3,6"]) return @"iPad 3"; return correspondVersion;}@end
/* 直接放里就行, 注意自己创建的类的名字, 复制过去需要改一下 */#import "CurrentDevice.h"#define DEVICEMODEL [[CurrentDevice shareCurrentDevice] deviceModel]#define DEVICEMODEL_t [[CurrentDevice sharedDeviceManager] deviceModel]#define DEVICEINFO [[CurrentDevice shareCurrentDevice] getDeviceVersionInfo]#define CORRESPONDVERSION [[CurrentDevice shareCurrentDevice] correspondVersion]
/* 判断当前屏幕状态 */- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration { switch (interfaceOrientation) { case UIInterfaceOrientationPortrait: /* home在下 */ self.webView.frame = CGRectMake(0 , 20, WIDTH, HEIGHT - 10); break; case UIInterfaceOrientationPortraitUpsideDown: /* home在上 */ self.webView.frame = CGRectMake(0, 20, WIDTH, HEIGHT- 10); break; case UIInterfaceOrientationLandscapeLeft: /* home在左 */ if ([DEVICEMODEL isEqualToString:@"iPad"]) { self.webView.frame = CGRectMake(0 , 20, WIDTH, HEIGHT - 10); } else { self.webView.frame = CGRectMake(0 , 0, WIDTH, HEIGHT); } break; case UIInterfaceOrientationLandscapeRight: /* home在右 */ if ([DEVICEMODEL isEqualToString:@"iPad"]) { self.webView.frame = CGRectMake(0 , 20, WIDTH, HEIGHT - 10); } else { self.webView.frame = CGRectMake(0 , 0, WIDTH, HEIGHT); } break; default: break; }}
转载地址:http://plvsn.baihongyu.com/