一惕味、幾個(gè)適配iPhoneX有用的宏/函數(shù)
1僚稿、宏
//判斷iOS11
#define iOS11OrLater @available(iOS 11.0, *)
//判斷iPhoneX
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPHONE_X (IS_IPHONE && SCREEN_WIDTH == 375.0f && SCREEN_HEIGHT == 812.0f)
2蹦掐、函數(shù)
//獲取視圖底部極限<適用于Masonry實(shí)現(xiàn)頁(yè)面布局>
MASViewAttribute* MD_SafeAreaInset_Masonry_Boom(UIView * view){
if(iOS11OrLater)
{
return view.mas_safeAreaLayoutGuideBottom;
}
return view.mas_bottom;
}
//獲取視圖頂部極限<適用于Masonry實(shí)現(xiàn)頁(yè)面布局>
MASViewAttribute* MD_SafeAreaInset_Masonry_Top(UIView * view){
if(iOS11OrLater)
{
return view.mas_safeAreaLayoutGuideTop;
}
return view.mas_top;
}
//獲取視圖安全區(qū)域<適用于非Masonry實(shí)現(xiàn)頁(yè)面布局>
UIEdgeInsets MD_SafeAreaInset(UIView * view){
if(iOS11OrLater)
{
if (!UIEdgeInsetsEqualToEdgeInsets(UIEdgeInsetsZero, view.safeAreaInsets))
{
return view.safeAreaInsets;
}
}
//防止獲取SafeAreaInset獲取zero
if(IS_IPHONE_X)
{
return UIEdgeInsetsMake(44, 0, 34, 0);
}
return UIEdgeInsetsZero;
}
iOS11適配
1葛家、scrollview布局及tableview顯示/抖動(dòng)適配
if (iOS11OrLater)
{
[UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
[UITableView appearance].estimatedSectionFooterHeight = 0;
[UITableView appearance].estimatedSectionHeaderHeight = 0;
[UITableView appearance].estimatedRowHeight = 0;
}
2户辞、webview適配(cell中包含webview若不處理,最終webview內(nèi)容將被遮擋部分高度)
if(iOS11OrLater)
{
self.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}