iOS 学习笔记--UI适配

2019-04-26  本文已影响0人  sunrise_min

每次遇到适配的问题都去百度,很浪费时间,所以这里整理下自己的使用以及搜索到的数据,以供下一次自己查看。

适配的屏幕相关数据(非原创,道友分享文章的截图,文章会列举在下方)

nav
tab

代码中目前我使用的与适配相关的宏

#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)
//状态栏的高度
#define kStatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height
//导航栏title的高度
#define kNavBarHeight 44.0
//tabBar的高度
#define kTabBarHeight ( Device_Is_iPhoneX_Devices ? 83 : 49)
//状态栏+导航栏的高度
#define kTopBarHeight (kStatusBarHeight + kNavBarHeight)
//判断是否是X系列(很多方法,下面还有无夜之星辰分享的判断方法,使用状态栏高度进行判断)
#define Device_Is_iPhoneX_Devices \
({BOOL isPhoneX = NO;\
if (@available(iOS 11.0, *)) {\
isPhoneX = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;\
}\
(isPhoneX);})

//非X系列没特殊情形时状态栏的高度
#define SYS_STATUSBAR_HEIGHT                20
//热点栏高度
#define HOTSPOT_STATUSBAR_HEIGHT            20

// 根据APP_STATUSBAR_HEIGHT判断是否存在热点栏
#define IS_HOTSPOT_CONNECTED (kStatusBarHeight==(SYS_STATUSBAR_HEIGHT+HOTSPOT_STATUSBAR_HEIGHT) ? YES : NO)

1. X系列机型的判断

  1. 无夜之星辰分享的 判断是否是iPhoneX系列机型
#define iPhoneXSeries (([[UIApplication sharedApplication] statusBarFrame].size.height == 44.0f) ? (YES):(NO))
  1. 使用安全区域判断
#define Device_Is_iPhoneX_Devices \
({BOOL isPhoneX = NO;\
if (@available(iOS 11.0, *)) {\
isPhoneX = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;\
}\
(isPhoneX);})

2. 全面屏的适配

下面是关于全面屏的尺寸总结的很好

3. 以上内容借鉴的文章

上一篇下一篇

猜你喜欢

热点阅读