iOS11 & iPhoneX适配指南

87 篇文章 1 订阅

参考资料:
App界面适配iOS11(包括iPhoneX的奇葩尺寸)
有关iOS11和iPhoneX的适配问题
适配iOS11&iPhoneX的一些坑


判断iPhoneX

swift 判断iPhoneX

extension UIDevice {
    //是否iPhoneX
    public class func isIphoneX() -> Bool {
        if UIScreen.main.bounds.height == 812 {
            return true
        }
        return false
    }
}

OC 判断iPhoneX


@interface UIDevice(extension)

+ (BOOL)isiphoneX;

@end

@implementation UIDevice(extension)

+ (BOOL)isiphoneX{
    if([UIScreen mainScreen].bounds.size.height == 812){
        return YES;
    }else{
        return NO;
    }
}

@end

iOS 11 禁止tableView自动偏移(整体上移或下移)
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;

if (@available(iOS 11.0, *)){
         [self.tableView setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
}

解决iPhoneX Push过程中TabBar位置上移方法

封装一个基类UINavigationController,这里名字设置为:MyNavigationController。在MyNavigationController中覆盖父类方法。

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    //适配iPhone X Push过程中TabBar位置上移
    if (self.viewControllers.count > 0) {
        viewController.hidesBottomBarWhenPushed = YES;
    }
    [super pushViewController:viewController animated:animated];
    // 修改tabBar的frame
    CGRect frame = self.tabBarController.tabBar.frame;
    frame.origin.y = [UIScreen mainScreen].bounds.size.height - frame.size.height;
    self.tabBarController.tabBar.frame = frame;


}

调整iPhoneX tabbar图标位置

这里引用ESTabbar的关键代码,其实是修改UITabbar的itemPositioning属性。

    public var itemCustomPositioning: ESTabBarItemPositioning? {
        didSet {
            if let itemCustomPositioning = itemCustomPositioning {
                switch itemCustomPositioning {
                case .fill:
                    itemPositioning = .fill
                case .automatic:
                    itemPositioning = .automatic
                case .centered:
                    itemPositioning = .centered
                default:
                    break
                }
            }
            self.reload()
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值