这里笔者给出更简单的刘海屏适配例子:
[bottomMenu mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view.mas_left).with.offset(0);
make.right.equalTo(self.view.mas_right).with.offset(0);
make.bottom.equalTo(self.view.mas_bottom).with.offset(0);
if (@available(iOS 11.0, *)) {
make.top.equalTo(self.view.mas_safeAreaLayoutGuideBottom).mas_offset(-bottomMenuHeight);
} else {
// Fallback on earlier versions
make.top.equalTo(self.view.mas_bottom).mas_offset(-bottomMenuHeight);
}
}];
主要利用了safe area来解决刘海屏的距离问题。
使用safe area的时候注意不要在viewdidload里面获取,要等到viewdidapper之后。不然获取到的safe area offset为空,建议在viewdidlayout里面获取。