美文网首页
iOS 11和iPhone X适配(一)

iOS 11和iPhone X适配(一)

作者: Lizzzzzzhen | 来源:发表于2017-11-08 15:51 被阅读22次
    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尺寸对比图

    相关文章

      网友评论

          本文标题:iOS 11和iPhone X适配(一)

          本文链接:https://www.haomeiwen.com/subject/aclgpxtx.html