iOS11、iPhone X适配

iOS11、iPhone X适配
参考: https://www.jianshu.com/p/3a9ad4f0fa32?appinstall=0

参考网址笔记:
①iPhone X的状态栏由原来的20变为44
②iPhone X:375x812 @3x ,和6、6s宽度一样,但是高度比6、6s plus 还要高

——————————————————————————————————
一:具体的数值
//判断是否iPhone X
#define isHigherIphoneX
({BOOL isPhoneX = NO;
if (@available(iOS 11.0, *)) {
isPhoneX = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;
}
(isPhoneX);})

// 状态栏高度
#define StatusBar_Height (isHigherIphoneX ? 44.0f : 20.0f)

//iPhoneX头部偏移量
#define iPhoneX_Top_Space (iPhoneX ? 24.f : 0)

//iPhoneX底部偏移量
#define iPhoneX_Bottom_Space (iPhoneX ? 34.f : 0)

//顶部导航栏高度
#define NAV_HEIGHT (64+iPhoneX_Top_Space)

// Frame布局
tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, NAV_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT - NAV_HEIGHT-iPhoneX_Bottom_Space) style:UITableViewStylePlain];

二:在iOS11中为View新增加了属性safeAreaLayoutGuide,在使用Auto Layout布局的时候,我们可以使用safeAreaLayoutGuide来创建约束

(1)swift版本:tableView
view.addSubview(tableView)
tableView.snp.makeConstraints {
$0.left.right.equalToSuperview()
$0.top.equalToSuperview()
if #available(iOS 11.0, *) {
$0.bottom.equalTo(view.safeAreaLayoutGuide.snp.bottom)
} else {
$0.bottom.equalToSuperview()
}
}

(2)oc版本:navBar
[self.view addSubview:self.navBar];
[self.navBar mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.right.equalTo(self.view);
if (@available(iOS 11.0, *)) {
make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideTop).offset(44);
} else {
make.height.equalTo(@64);
}
}];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值