1. 程式人生 > >IOS 判斷裝置螢幕尺寸、解析度 根據螢幕尺寸和解析度

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      =

1,

// 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