神剑若水哥:iOS 开发,手机屏幕尺寸和导航条高度

iOS 开发,苹果手机屏幕尺寸和导航条,状态条,高度

统计如下:

手机型号 尺寸(对角线) 物理点 宽长比例 像素点 倍数 状态栏高度 底部安全距离 导航栏高度 tabbar高度 状态条高度
iPhone 4/4S 3.5英寸 320x480 0.667 640x960 @2x 20 - 44 49 20
iPhone 5/5S/5C 4英寸 320x568 0.563 640x1136 @2x 20 - 44 49 20
iPhone SE 4英寸 320x568 0.563 640x1136 @2x 20 - 44 49 20
iPhone 6 4.7英寸 375x667 0.562 750x1334 @2x 20 44 49 20
iPhone 6 Plus 5.5英寸 414x736 0.563 1242x2208 @3x 20 - 44 49 20
iPhone 6S 4.7英寸 375x667 0.562 750x1334 @2x 20 - 44 49 20
iPhone 6S Plus 5.5英寸 414x736 0.563 1242x2208 @3x 20 - 44 49 20
iPhone 7 4.7英寸 375x667 0.562 750x1334 @2x 20 44 49 20
iPhone 7 Plus 5.5英寸 414x736 0.563 1242x2208 @3x 20 - 44 49 20
iPhone 8 4.7英寸 375x667 0.562 750x1334 @2x 20 - 44 49 20
iPhone 8 Plus 5.5英寸 414x736 0.563 1242x2208 @3x 20 - 44 49 20
iPhone X 5.8英寸 375x812 0.462 1125x2436 @3x 44 34 44 83 44
iPhone XS 5.8英寸 375x812 0.462 1125x2436 @3x 44 34 44 83 44
iPhone XR 6.1英寸 414x896 0.462 828x1792 @2x 44 34 44 83 44
iPhone XS Max 6.5英寸 414x896 0.462 1242x2688 @3x 44 34 44 83 44
iPhone 11 Pro 5.8英寸 375x812 0.462 1125x2436 @3x 44 34 44 83 44
iPhone 11 6.1英寸 414x896 0.462 828x1792 @2x 44 34 44 83 44
iPhone 11 Pro Max 6.5英寸 414x896 0.462 1242x2688 @3x 44 34 44 83 44

总结:

iPhoneX 以后的手机 状态条44, 分栏条(tabbar) 83

iPhoneX 以前的手机 状态条20,分栏条(tabbar) 49

导航条永远都是44

所以,如果是纯代码编写的工程项目,适配起来相对容易。

iPone所需要的LaunchImage的尺寸为:

1242*2688

1125*2436

828*1792

1242*2208

750*1334

640*1136

320*480

苹果所有机型对应的machine型号:

machine型号 手机型号
iPhone3,1 iPhone 4 (GSM)
iPhone3,2 iPhone 4 (GSM Rev. A)
iPhone3,3 iPhone 4 (CDMA)
iPhone4,1 iPhone4s
iPhone5,1 iPhone 5 (GSM)
iPhone5,2 iPhone 5 (Global)
iPhone5,3 iPhone 5C (GSM)
iPhone5,4 iPhone 5C (Global)
iPhone6,1 iPhone 5S (GSM)
iPhone6,2 iPhone 5S (Global)
iPhone7,1 iPhone 6Plus
iPhone7,2 iPhone 6
iPhone8,1 iPhone 6s
iPhone8,2 iPhone 6s Plus
iPhone8,4 iPhone SE
iPhone9,1 iPhone 7
iPhone9,3 iPhone 7
iPhone9,2 iPhone 7Plus
iPhone9,4 iPhone 7Plus
iPhone10,1 iPhone 8
iPhone10,4 iPhone 8
iPhone10,2 iPhone 8Plus
iPhone10,5 iPhone 8Plus
iPhone10,3 iPhone X
iPhone10,6 iPhone X
iPhone11,2 iPhone XS
iPhone11,8 iPhone XR
iPhone11,6 iPhone XS Max
iPhone12,1 iPhone 11
iPhone12,3 iPhone 11 Pro
iPhone12,5 iPhone 11 Pro Max

苹果X以上的升级对应关系

年份 主机型
2017年 iPhone X
2018年 iPhone XS iPhone XR iPhone XS Max
2019年 iPhone 11 Pro iPhone 11 iPhone 11 Pro Max

获取的高度数据的代码如下:

#define K_SCREEN_WIDTH                  ([[[UIDevice currentDevice] systemVersion] intValue] >= 7 ? [UIScreen mainScreen].bounds.size.width : [UIScreen mainScreen].applicationFrame.size.width)
#define K_SCREEN_HEIGHT                 ([[[UIDevice currentDevice] systemVersion] intValue] >= 7 ? [UIScreen mainScreen].bounds.size.height : [UIScreen mainScreen].applicationFrame.size.height)

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    NSLog(@"宽度%.f",K_SCREEN_WIDTH);
    NSLog(@"高度%.f",K_SCREEN_HEIGHT);
    NSLog(@"状态条%.f",[[UIApplication sharedApplication] statusBarFrame].size.height);
    NSLog(@"导航条%.f",self.mNavigatonVC.navigationBar.frame.size.height);
    NSLog(@"Tabar%.f",self.mTabbarVC.tabBar.bounds.size.height);
}

适配代码,机型定义:

//手机类型
typedef NS_OPTIONS (NSUInteger, IPhoneSceenType) {
    IPhoneSceenType_4s          =1<< 0,                                                          //4s 或者4
    IPhoneSceenType_5s          =1<< 1,                                                          //5或者5
    IPhoneSceenType_6s          =1<< 2,                                                          //6s或者6或者7或者8
    IPhoneSceenType_6Plus       =1<< 3,                                                          //6Plus或者7Plus或者8Plus
    IPhoneSceenType_IponeX      =1<< 4,                                                          //苹果X/XS/iPhone11_Pro
    IPhoneSceenType_IponeXR     =1<< 5,                                                          //苹果XR,苹果XS_MAX,iPhone11,iPhone11_Pro_Max
    IPhoneSceenType_UnKnown     =1<< 10,                                                         //未知机型
};

机型判断

+ (IPhoneSceenType)getCurrentIPhoneType
{
    if (K_SCREEN_WIDTH  == 320 && K_SCREEN_HEIGHT == 480) {
        return IPhoneSceenType_4s;
    } else if (K_SCREEN_WIDTH  == 320 && K_SCREEN_HEIGHT == 568) {
        return IPhoneSceenType_5s;
    } else if (K_SCREEN_WIDTH  == 375 && K_SCREEN_HEIGHT == 667) {
        return IPhoneSceenType_6s;
    } else if (K_SCREEN_WIDTH  == 414 && K_SCREEN_HEIGHT == 736) {
        return IPhoneSceenType_6Plus;
    } else if (K_SCREEN_WIDTH  == 375 && K_SCREEN_HEIGHT == 812) {
        return IPhoneSceenType_IponeX;
    } else if (K_SCREEN_WIDTH  == 414 && K_SCREEN_HEIGHT == 896) {
        return IPhoneSceenType_IponeXR;
    } else {
        return IPhoneSceenType_UnKnown;
    }
}

状态条statusBar高度

+(CGFloat)getStatusBarHeight
{
    IPhoneSceenType type = [FZTools getCurrentIPhoneType];
   NSNumber * typeNumber = [NSNumber numberWithInteger:type];
    NSSet *set1 = [[NSSet alloc]initWithArray:@[
        [NSNumber numberWithInt:IPhoneSceenType_4s],
        [NSNumber numberWithInt:IPhoneSceenType_5s],
        [NSNumber numberWithInt:IPhoneSceenType_6s],
        [NSNumber numberWithInt:IPhoneSceenType_6Plus],
    ]];
    NSSet *set2 = [[NSSet alloc]initWithArray:@[
        [NSNumber numberWithInt:IPhoneSceenType_IponeX],
        [NSNumber numberWithInt:IPhoneSceenType_IponeXR],
        [NSNumber numberWithInt:IPhoneSceenType_UnKnown],
    ]];
    if([set1 containsObject:typeNumber]){
        return 20;
    }else if([set2 containsObject:typeNumber]){
        return 44;
    }else{
        return 44;
    }
    
}

分栏选择条的高度

+(CGFloat)getTabbarHeight
{
    IPhoneSceenType type = [FZTools getCurrentIPhoneType];
   NSNumber * typeNumber = [NSNumber numberWithInteger:type];
    NSSet *set1 = [[NSSet alloc]initWithArray:@[
        [NSNumber numberWithInt:IPhoneSceenType_4s],
        [NSNumber numberWithInt:IPhoneSceenType_5s],
        [NSNumber numberWithInt:IPhoneSceenType_6s],
        [NSNumber numberWithInt:IPhoneSceenType_6Plus],
    ]];
    NSSet *set2 = [[NSSet alloc]initWithArray:@[
        [NSNumber numberWithInt:IPhoneSceenType_IponeX],
        [NSNumber numberWithInt:IPhoneSceenType_IponeXR],
        [NSNumber numberWithInt:IPhoneSceenType_UnKnown],
    ]];
    if([set1 containsObject:typeNumber]){
        return 49;
    }else if([set2 containsObject:typeNumber]){
        return 83;
    }else{
        return 83;
    }
}

宏定义

屏幕宽高

#define K_SCREEN_WIDTH                  ([[[UIDevice currentDevice] systemVersion] intValue] >= 7 ? [UIScreen mainScreen].bounds.size.width : [UIScreen mainScreen].applicationFrame.size.width)
#define K_SCREEN_HEIGHT                 ([[[UIDevice currentDevice] systemVersion] intValue] >= 7 ? [UIScreen mainScreen].bounds.size.height : [UIScreen mainScreen].applicationFrame.size.height)

导航条状态条的高度

#define Height_NavBar          44.0f                                    //导航条的高度
#define Height_StatusBar       [FZTools getStatusBarHeight]             //状态条高度
#define Height_TabBar          [FZTools getTabbarHeight]                //tabbar 高度

总结:关于状态条,导航条,tabbar的高度,只要取上面的宏定义就可以啦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,607评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,239评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,960评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,750评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,764评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,604评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,347评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,253评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,702评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,893评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,015评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,734评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,352评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,934评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,052评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,216评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,969评论 2 355

推荐阅读更多精彩内容