现在的位置: 首页 > 综合 > 正文

iphone5处理屏幕分辨率

2013年08月23日 ⁄ 综合 ⁄ 共 1642字 ⁄ 字号 评论关闭

创建轻量UIDivece类别用以处理所有的屏幕分辨率

//
//  UIDevice+Resolutions.h
//  
//
//  Created by HelenSong on 12-9-25.
//  Copyright (c) 2012年 . All rights reserved.
//

#import <UIKit/UIKit.h>

enum {
    UIDevice_iPhoneStandardRes      = 1,    // iPhone 1,3,3GS Standard Resolution   (320x960px)
    UIDevice_iPhoneHiRes            = 2,    // iPhone 4,4S High Resolution          (640x960px)
    UIDevice_iPhoneTallerHiRes      = 3,    // iPhone 5 High Resolution             (640x1136px)
    UIDevice_iPadStandardRes        = 4,    // iPad 1,2 Standard Resolution         (1024x768px)
    UIDevice_iPadHiRes              = 5     // iPad 3 High Resolution               (2048x1536px)
}; typedef NSUInteger UIDeviceResolution;

@interface UIDevice (Resolutions) { }

+ (UIDeviceResolution) currentResolution;

@end

//
//  UIDevice+Resolutions.m
//  
//
//  Created by HelenSong on 12-9-25.
//  Copyright (c) 2012年 . All rights reserved.
//

#import "UIDevice+Resolutions.h"

@implementation UIDevice (Resolutions)

+ (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);
            return (result.height == 960 ? UIDevice_iPhoneHiRes : UIDevice_iPhoneTallerHiRes);
        } else
            return UIDevice_iPhoneStandardRes;
    } else
        return (([[UIScreen mainScreen] respondsToSelector: @selector(scale)]) ? UIDevice_iPadHiRes : UIDevice_iPadStandardRes);
}

@end

方法二:使用宏定义方式判断是否为iphone5

#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)

if (!iPhone5) {
        [[NSBundle mainBundle]loadNibNamed:@"xxxController" owner:self options:nil];  
    }else {
        [[NSBundle mainBundle]loadNibNamed:@"xxxController4inch" owner:self options:nil];
    }

抱歉!评论已关闭.