IOS 11和Iphone X适配问题

今天更新的xc9,然后再x上信心满满的跑项目,然后就是你懂的,尴尬了一地。

1、状态栏问题

相信大家都遇到了这个问题,x上的状态栏高度不一样。大家可以观看wwdc介绍这个新特性。

判断是否为iphone X,可以写一个扩展。

extension UIDevice {

   public func isX() -> Bool {

        if UIScreen.main.bounds.height == 812 {

                return true

         }

         return false

    }

}

2、自定义Tabbar问题

自定义tabbar时,在自定义的TabbarController里面实现:

-(void)viewDidAppear:(BOOL)animated{

[superviewDidAppear:animated];

//删除系统自带的按钮

for(UIView*childinself.tabBar.subviews) {

if([childisKindOfClass:[UIControlclass]]) {

[childremoveFromSuperview];

}

}

}

当你觉得ok的时候,发现从tabbar的子控制器push页面,然后pop回来。tabbar又发生了变化,居然又多了一层。废话不多说,干货:

-(void)viewWillLayoutSubviews{

[superviewWillLayoutSubviews];

for(UIView*childinself.tabBar.subviews) {

if([childisKindOfClass:NSClassFromString(@"UITabBarButton")]) {

[childremoveFromSuperview];

}

}

}

ok.补充哈,这两个方法都写在自定义的TabbarController.

你可能感兴趣的:(IOS 11和Iphone X适配问题)