iOS 2018新IPhone机型适配

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

/**  状态栏高度  */
#define STATUS_BAR_HEIGHT [Helper status_ber_height]
/**  导航栏高度  */
#define NAVIGATION_BAR_HEIGHT [Helper navgation_ber_height]
/**  tabBar高度  */
#define TAB_BAR_HEIGHT [Helper tab_ber_height]
/**  Home 条  */
#define HOME_INDICATOR_HEIGHT [Helper home_button_height]
/**  内容高度  */
#define Content_HEIGHT(nav,tab) [Helper content_height:nav isTab:tab]

typedef NS_ENUM(NSUInteger, iPhoneType) {
    iPhoneTypeiPhone4s,
    iPhoneTypeiPhone5s,
    iPhoneTypeiPhone,
    iPhoneTypeiPhonePlus,
    iPhoneTypeiPhoneX_XS,
    iPhoneTypeiPhoneXS,
    iPhoneTypeiPhoneXR,
    iPhoneTypeiPhoneXMax,
    iPhoneTypeiPad,
    iPhoneTypeMoNiQi,
    iPhoneTypeUnkuown
};

@interface Helper : NSObject
/**
 640 × 960       iPhone4s         Default@2x
 640 × 1136      iPhone5s         Default-568h@2x
 750 × 1334      iPhone           Default-667h@2x
 1242 × 2208     iPhonePlus       Default-736h@3x
 1125 × 2436     iPhoneX, XS      Default-812h@3x
 828 x 1792      iPhoneXR         Default-828h@2x
 1242 x 2688     iPhoneX Max      Default-1242h@3x
 */
+(iPhoneType)iphone;

/**  是否柳海屏  */
+(BOOL)liuHaiPing;
/**  状态栏  */
+(CGFloat)status_ber_height;
/**  导航条  */
+(CGFloat)navgation_ber_height;
/**  tabbar  */
+(CGFloat)tab_ber_height;
/**  Home条  */
+(CGFloat)home_button_height;
/**  显示内容区域高度  */
+(CGFloat)content_height:(BOOL)isNav isTab:(BOOL)isTab;

@end

NS_ASSUME_NONNULL_END
#import "Helper.h"

@implementation Helper
/**
 640 × 960       iPhone4s          Default@2x
 640 × 1136      iPhone5s          Default-568h@2x
 750 × 1334      iPhone              Default-667h@2x
 1242 × 2208     iPhonePlus       Default-736h@3x
 1125 × 2436     iPhoneX, XS      Default-812h@3x
 828 x 1792      iPhoneXR          Default-828h@2x
 1242 x 2688     iPhoneX Max    Default-1242h@3x
 */
+(iPhoneType)iphone
{
    BOOL ipad  =  [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad;
    if (ipad) {   return iPhoneTypeiPad;  }
    
    CGSize size = [[UIScreen mainScreen] currentMode].size;
    
    if ( CGSizeEqualToSize(size, CGSizeMake(640, 960))) {
        return iPhoneTypeiPhone4s;
    }else if (CGSizeEqualToSize(size, CGSizeMake(640, 1136))){
        return iPhoneTypeiPhone5s;
    }else if (CGSizeEqualToSize(size, CGSizeMake(750, 1334))){
        return iPhoneTypeiPhone;
    }else if (CGSizeEqualToSize(size, CGSizeMake(1242, 2208))){
        return iPhoneTypeiPhonePlus;
    }else if (CGSizeEqualToSize(size, CGSizeMake(1125, 2436))){
        return iPhoneTypeiPhoneX_XS;
    }else if (CGSizeEqualToSize(size, CGSizeMake(828, 1792))){
        return iPhoneTypeiPhoneXR;
    }else if (CGSizeEqualToSize(size, CGSizeMake(1242, 2688))){
        return iPhoneTypeiPhoneXMax;
    }else{
        return iPhoneTypeUnkuown;
    };
    
}

+(BOOL)liuHaiPing
{
    iPhoneType type =  [self iphone];
    switch (type) {
        case iPhoneTypeiPhone4s ... iPhoneTypeiPhonePlus:
        {
            return NO;
        }
            break;
        default:
            return YES;
            break;
    }
}

+(CGFloat)status_ber_height
{
    iPhoneType type =  [self iphone];
    switch (type) {
        case iPhoneTypeiPhone4s ... iPhoneTypeiPhonePlus:
        {
            return 20.f;
        }
            break;
        case iPhoneTypeiPhoneX_XS:
        {
            return 44.f;
        }
            break;
        case iPhoneTypeiPhoneXR:
        {
            return 44.f;
        }
            break;
        case iPhoneTypeiPhoneXMax:
        {
            return 44.f;
        }
            break;
        default:
            return 20.f;
            break;
    }
}


+(CGFloat)navgation_ber_height
{
    iPhoneType type =  [self iphone];
    switch (type) {
        case iPhoneTypeiPhone4s ... iPhoneTypeiPhonePlus:
        {
            return 64.f;
        }
            break;
        case iPhoneTypeiPhoneX_XS:
        {
            return 88.f;
        }
            break;
        case iPhoneTypeiPhoneXR:
        {
            return 88.f;
        }
            break;
        case iPhoneTypeiPhoneXMax:
        {
            return 88.f;
        }
            break;
        default:
            return 64.f;
            break;
    }
}


+(CGFloat)tab_ber_height
{
    iPhoneType type =  [self iphone];
    switch (type) {
        case iPhoneTypeiPhone4s ... iPhoneTypeiPhonePlus:
        {
            return 49.f;
        }
            break;
        case iPhoneTypeiPhoneX_XS:
        {
            return 49.f+34.f;
        }
            break;
        case iPhoneTypeiPhoneXR:
        {
            return 49.f+34.f;
        }
            break;
        case iPhoneTypeiPhoneXMax:
        {
            return 49.f+34.f;
        }
            break;
        default:
            return 49.f+34.f;
            break;
    }
    
    
}

+(CGFloat)home_button_height
{
    iPhoneType type =  [self iphone];
    switch (type) {
        case iPhoneTypeiPhone4s ... iPhoneTypeiPhonePlus:
        {
            return 0;
        }
            break;
        case iPhoneTypeiPhoneX_XS:
        {
            return 34.f;
        }
            break;
        case iPhoneTypeiPhoneXR:
        {
            return 34.f;
        }
            break;
        case iPhoneTypeiPhoneXMax:
        {
            return 34.f;
        }
            break;
        default:
            return 34.f;
            break;
    } 
}

+(CGFloat)content_height:(BOOL)isNav isTab:(BOOL)isTab
{
    CGFloat h = [UIScreen mainScreen].bounds.size.height;
    if (isNav == YES)
    {
        h -= [self navgation_ber_height];
    }
    if (isTab == YES)
    {
        h -= [self tab_ber_height];
    }
    return  h;
}
@end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值