iOS调试——适配iOS11,iPhoneX问题及解决办法

iPhoneX:

问题

1.app上下各有空间,未全屏

解决办法:UI给新图后,新增 launchimg启动图 。图片尺寸:1125 * 2436

iOS调试——适配iOS11,iPhoneX问题及解决办法_第1张图片


2.问题:使用MJRefresh,下拉刷新UI错误

解决办法:

方法一:如果多个页面用tableview,建议使用 baseTableView,继承。baseTableView实现下列方法

OC:

if  (@available(iOS 11.0, *)) {
             _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
             _tableView.scrollIndicatorInsets = _tableView.contentInset;
         }
swift:

if  #available(iOS 11.0, *) {
             tableView.contentInsetAdjustmentBehavior = .never
             tableView.scrollIndicatorInsets = tableView.contentInset
         }

方法二:给tableview添加分类,实现上述方法,在声明tableview的类中调用分类方法

方法三:你随意发挥


3.问题:自定义导航栏方法失效:导致返回箭头在iOS11中位置下移。自定义按钮图片后解决了箭头位置问题但文字去除不能同时处理好。

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)

//                                                         forBarMetrics:UIBarMetricsDefault];

上述方法无法再完美解决去除返回按钮文字,留下位置合适的箭头。。

解决方案:大致有给UIBarButtonItem添加分类或重写,自己控制位置样式等,给UIVIewController添加分类,重写返回按钮,在控制器中添加按钮及点击方法,使用判断iOS11及偏移的方法调整箭头位置等。

自定义导航栏,其他博客上看到的箭头处理办法:

UIImage *backButtonImage = [[UIImage imageNamed:@"left"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

    self.navigationBar.backIndicatorImage = backButtonImage;

    self.navigationBar.backIndicatorTransitionMaskImage = backButtonImage;

控制器中调用方法去掉返回文字:

    self.navigationController.navigationBar.topItem.title = @"";


暂时项目iOS11就发现了这几个问题,再遇到再记录,未完待续。。。

还发现一个iOS11的bug :系统提醒事项里面UI错乱。。。某一项位置数据在+号下面几行,+号上面数据位置空,但是可以左滑删除等操作。懒得截图了,反正也不重要哈哈哈



你可能感兴趣的:(iOS)