美文网首页App适配程序员iOS Developer
iOS11&&iPhone X适配(仅针对当前项

iOS11&&iPhone X适配(仅针对当前项

作者: SuyChen | 来源:发表于2017-10-12 16:54 被阅读961次

    有问题留言~

    iOS11

    1.导航栏图层变化

    titleView和barbutton都需要根据版本适配
    titleView最好独立一个view出来,并且重写intrinsicContentSize属性

    2.新增安全区域的概念

    iOS 11中Controller的automaticallyAdjustsScrollViewInsets属性被废弃了,新增加了安全区域,如果你的APP中使用的是自定义的navigationbar,隐藏掉系统的navigationbar,并且tableView的frame为(0,0,SCREEN_WIDTH, SCREEN_HEIGHT)开始,那么系统会自动调整SafeAreaInsets值为(20,0,0,0),如果使用了系统的navigationbar,那么SafeAreaInsets值为(64,0,0,0),如果也使用了系统的tabbar,那么SafeAreaInsets值为(64,0,49,0)。iPhoneX的SafeAreaInsets值为(88,0,34,0)。

    PS:安全区域是只读的,可以通过addtionalSafeAreaInset来扩展安全区域。

    3.scrollView新增的两个属性:adjustContentInset和contentInsetAdjustmentBehavior

    自行百度

    4.手动关闭估算行高

    self.tableView.estimatedRowHeight = 0;
    self.tableView.estimatedSectionHeaderHeight = 0;
    self.tableView.estimatedSectionFooterHeight = 0;

    iPhone X

    • 必须修改启动图才能占满整个屏幕。
    • 导航栏和tabbar的高度增加,后面的开发需要注意动态改变他的高度。

    下面的宏直接放在pch文件里面

    #define ScreenWidth [[UIScreen mainScreen] bounds].size.width
    #define ScreenHeight [[UIScreen mainScreen] bounds].size.height
    #define Is_Iphone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    #define Is_Iphone_X (Is_Iphone && ScreenHeight == 812.0)
    #define NaviHeight Is_Iphone_X ? 88 : 64
    #define TabbarHeight Is_Iphone_X ? 83 : 49
    #define BottomHeight Is_Iphone_X ? 34 : 0
    
    例子:
    [view mas_makeConstraints:^(MASConstraintMaker *make) {
          make.top.equalTo(self.view.mas_top).with.offset(NaviHeight);
          make.bottom.equalTo(self.view.mas_bottom).with.offset(-(BottomHeight));
          make.left.right.equalTo(self.view);
      }];
    //有tabbar就用TabbarHeight,没有就用BottomHeight
    

    开发建议

    • self.automaticallyAdjustsScrollViewInsets = NO。
    • 因为要适配iPhone X动态改变导航和tabbar的高度,所以最外层不建议用xib,直接通过代码适配最好。

    新增:

    iOS11定位服务 plist里面要增加字段

    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    <string>打开定位服务XX将更好的服务于您</string>

    相关文章

      网友评论

      • iOS白水:网页是怎么适配的。特别拉到底的。 滚动的时候 是可以经过安全区域的。 看你这样适配方法。都无法经过安全区域了。
      • f7139db11dcd:最外层xib。烦死了
        SuyChen:我也觉得好烦:joy:

      本文标题:iOS11&&iPhone X适配(仅针对当前项

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