IOS 判断设备屏幕尺寸、分辨率

摘要:
+(UIDeviceResolution)currentResolution函数描述:N/A输出参数:+(BOOL)isRunningOnPhone函数描述:不适用输出参数:N/A返回参数:

根据屏幕尺寸和分辨率,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

免责声明:文章转载自《IOS 判断设备屏幕尺寸、分辨率》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Failed to execute 'toDataURL' on 'HTMLCanvasElement,在canvas.toDataURL()执行时候报错解决方案CTeX学习心得总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关于nodejs中遇到mysql默认8小时连接断开机制的终极简单解决方案

由于mysql默认8小时连接无访问,就会断开.为此查了一下资料,有同种比较简单的解决方案: 1. 增加 MySQL 的 wait_timeout 属性的值。  修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置: # Set a connection to wait 8hours in idle status.  wait_tim...

YII2框架集成go!aop

AOP实践:YII2框架本身拥有一个功能,叫做行为.它可以动态的为当前的类附加额外的功能,但这种功能在代码层级结构是静态的,有侵入性的。下面以YII2框架集成go!aop库为例,介绍在YII2中如何实现AOP编程.(go!aop简介,可以参考go!aop的官网.)由于YII框架拥有自己的类加载器,所在集成go!aop的时候,不能正常的工作,所以要将其禁用掉...

hdu 4651 Partition (利用五边形定理求解切割数)

下面内容摘自维基百科:五边形数定理[编辑] 五边形数定理是一个由欧拉发现的数学定理,描写叙述欧拉函数展开式的特性[1] [2]。欧拉函数的展开式例如以下: 亦即 欧拉函数展开后,有些次方项被消去,仅仅留下次方项为1, 2, 5, 7, 12, ...的项次,留下来的次方恰为广义五边形数。 当中符号为- - + + - - + + ........

Haskell学习笔记

…高阶函数 map :: (a->b) ->[a] ->[b],将函数f依次应用于序列[a],得到新的序列[b]。 filter :: (a->bool)->[a]->[a],利用函数f过滤序列[a]。 这两个函数都可用list comprehension来实现,不过在某些情况下更简洁。利用这两个函数和CF组合可以...

《微信小程序七日谈》- 第三天:玩转Page组件的生命周期

《微信小程序七日谈》系列文章: 第一天:人生若只如初见; 第二天:你可能要抛弃原来的响应式开发思维; 第三天:玩转Page组件的生命周期; 第四天:页面路径最多五层?导航可以这么玩; 第五天:你可能要在登录功能上花费大力气; 第六天:小程序devtool隐藏的秘密; 第七天:不要捡了芝麻丢了西瓜 本系列的文章并非初学教程,而是笔者在具体开...

PHP min() 函数

实例 通过 min() 函数查找最小值: <?php高佣联盟 www.cgewang.comecho(min(2,4,6,8,10) . "<br>");echo(min(22,14,68,18,15) . "<br>");echo(min(array(4,6,8,10)) . "<br>");echo(min(a...