iOS 11和iPhone X适配(一)

2017-11-08  本文已影响22人  Lizzzzzzhen
1.导航栏和tabBar问题

iOS11之后如果设置了prefersLargeTitles = YES则为 96pt ,默认情况下还是
64pt .
iPhoneX上由于刘海的出现statusBar由以前的20pt变成了44pt,所以iPhoneX上高度变为88pt

tabbar 高度由 49 变为 83, 底下安全高度 34
导航栏高度由 64 变为 88, 状态栏 20 变为 44

2.UITableView和UICollectionView位置错乱问题

升级后,发现某个拥有tableView的界面错乱,组间距和 contentInset 错乱,因为iOS11中 UIViewController 的 automaticallyAdjustsScrollViewInsets 属性被废弃了,因此当tableView超出安全区域时,系统自动会调整SafeAreaInsets值,进而影响adjustedContentInset

解决方法一:
// 解决方法一:添加实现View的代理方法
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
  return nil;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
  return nil;
}
解决方法二:添加以下代码关闭估算行高
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;
3.导航栏返回按钮问题:
UIImage *backImage = [[UIImage imageNamed:@"btn_back_normal"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-100000, 0) forBarMetrics:UIBarMetricsDefault];
self.navigationBar.backIndicatorImage = backImage;
self.navigationBar.backIndicatorTransitionMaskImage = backImage;
4.老的项目用iPhone X打开不是全屏展开问题:
iPhone X全屏显示
5.iPhone尺寸图对比:
iPhone尺寸对比图
上一篇 下一篇

猜你喜欢

热点阅读