IOS 判斷裝置螢幕尺寸、解析度 根據螢幕尺寸和解析度
根據螢幕尺寸和解析度,ios現在數起來有6個版本。
iOS 裝置現有的解析度如下:
iPhone/iPod Touch
普通屏 320畫素 x 480畫素 iPhone 1、3G、3GS,iPod Touch 1、2、3
3:2 Retina 屏 640畫素 x 960畫素 iPhone 4、4S,iPod Touch 4
16:9 Retina 屏 640畫素 x 1136畫素 iPhone 5,iPod Touch 5
iPad
普通屏 768畫素 x 1024畫素 iPad 1, iPad2,iPad mini
Retina屏 1536畫素 x 2048畫素 New iPad,iPad 4
UIDevice+Resolutions.h
//
// UIDevice+Resolutions.h
// Test_common
//
// Created by wangzhipeng on 13-1-30.
// Copyright (c) 2013年 com.comsoft. All rights reserved.
//
#import <UIKit/UIKit.h>
enum {
// iPhone 1,3,3GS 標準解析度(320x480px)
UIDevice_iPhoneStandardRes =
// iPhone 4,4S 高清解析度(640x960px)
UIDevice_iPhoneHiRes = 2,
// iPhone 5 高清解析度(640x1136px)
UIDevice_iPhoneTallerHiRes = 3,
// iPad 1,2 標準解析度(1024x768px)
UIDevice_iPadStandardRes = 4,
// iPad 3 High Resolution(2048x1536px)
UIDevice_iPadHiRes = 5
}; typedef NSUInteger UIDeviceResolution;
@interface UIDevice (Resolutions){
}
/******************************************************************************
函式名稱 : + (UIDeviceResolution) currentResolution
函式描述 : 獲取當前解析度
輸入引數 : N/A
輸出引數 : N/A
返回引數 : N/A
備註資訊 :
******************************************************************************/
+ (UIDeviceResolution) currentResolution;
/******************************************************************************
函式名稱 : + (UIDeviceResolution) currentResolution
函式描述 : 當前是否執行在iPhone5端
輸入引數 : N/A
輸出引數 : N/A
返回引數 : N/A
備註資訊 :
******************************************************************************/
+ (BOOL)isRunningOniPhone5;
/******************************************************************************
函式名稱 : + (BOOL)isRunningOniPhone
函式描述 : 當前是否執行在iPhone端
輸入引數 : N/A
輸出引數 : N/A
返回引數 : N/A
備註資訊 :
******************************************************************************/
+ (BOOL)isRunningOniPhone;
@end
UIDevice+Resolutions.m
//
// UIDevice+Resolutions.m
// Test_common
//
// Created by wangzhipeng on 13-1-30.
// Copyright (c) 2013年 com.comsoft. All rights reserved.
//
#import"UIDevice+Resolutions.h"
@implementation UIDevice (Resolutions)
/******************************************************************************
函式名稱 : + (UIDeviceResolution) currentResolution
函式描述 : 獲取當前解析度
輸入引數 : N/A
輸出引數 : N/A
返回引數 : N/A
備註資訊 :
******************************************************************************/
+ (UIDeviceResolution) currentResolution {
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
if ([[UIScreen mainScreen] respondsToSelector: @selector(scale)]) {
CGSize result = [[UIScreen mainScreen] bounds].size;
result = CGSizeMake(result.width * [UIScreen mainScreen].scale, result.height * [UIScreen mainScreen].scale);
if (result.height <= 480.0f)
return UIDevice_iPhoneStandardRes;
return (result.height > 960 ? UIDevice_iPhoneTallerHiRes : UIDevice_iPhoneHiRes);
} else
return UIDevice_iPhoneStandardRes;
} else
return (([[UIScreen mainScreen] respondsToSelector: @selector(scale)]) ? UIDevice_iPadHiRes : UIDevice_iPadStandardRes);
}
/******************************************************************************
函式名稱 : + (UIDeviceResolution) currentResolution
函式描述 : 當前是否執行在iPhone5端
輸入引數 : N/A
輸出引數 : N/A
返回引數 : N/A
備註資訊 :
******************************************************************************/
+ (BOOL)isRunningOniPhone5{
if ([self currentResolution] == UIDevice_iPhoneTallerHiRes) {
return YES;
}
return NO;
}
/******************************************************************************
函式名稱 : + (BOOL)isRunningOniPhone
函式描述 : 當前是否執行在iPhone端
輸入引數 : N/A
輸出引數 : N/A
返回引數 : N/A
備註資訊 :
******************************************************************************/
+ (BOOL)isRunningOniPhone{
return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone);
}
@end