美文网首页
iPhoneX和其他

iPhoneX和其他

作者: 航行_iOS | 来源:发表于2018-01-05 11:08 被阅读0次

    iPhone X的出现,颠覆了我们对于苹果手机顶部状态栏高度和底部tabbar高度的认识,我有话想说

    方式一:通过判断是不是iPhone X
    // 判断是否是iPhone X
    #define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)

    // 状态栏高度
    #define STATUS_BAR_HEIGHT (iPhoneX ? 44.f : 20.f)
    //导航栏高度
    #define NAVIGATION_BAR_HEIGHT (iPhoneX ? 88.f : 64.f)
    // tabBar高度
    #define TAB_BAR_HEIGHT (iPhoneX ? (49.f+34.f) : 49.f)
    // home
    #define HOME_INDICATOR_HEIGHT (iPhoneX ? 34.f : 0.f)

    方式二:
    建议以后不要判断 直接使用获取的方式得到高度

    //状态栏高度(iPhone X 其他)
    float stateHeight = [UIApplication sharedApplication].statusBarFrame.size.height; //44 20
    //导航栏高度
    float naviHeight = self.navigationController.navigationBar.bounds.size.height; //44 44
    //标签控制器高度
    float tabbarHeight = self.tabBarController.tabBar.bounds.size.height; //83 49

    解决UITableView适应的问题

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

    解决安全区问题

    if (@available(iOS 11.0,*)) {
        make.edges.equalTo(self.view.safeAreaInsets);
    }
    else
    {
        make.edges.equalTo(self.view);
    }

    相关文章

      网友评论

          本文标题:iPhoneX和其他

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