iOS11 导航栏和状态栏适配的方法

1、导航栏返回按钮无文字设置:

用的下面方法设置的导致按钮向下偏移的

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

解决办法:

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-200, 0) forBarMetrics:UIBarMetricsDefault];

2、使用tableView时,状态栏空出20像素

解决办法:

self.extendedLayoutIncludesOpaqueBars = YES;

if (@available(iOS 11.0, *)) {

self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

} else {

self.automaticallyAdjustsScrollViewInsets = NO;

}

3、自定义导航栏返回按钮,UIBarButtonSystemItemFixedSpace失效

解决办法:

UIBarButtonItem *leftItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"back"] style:UIBarButtonItemStyleDone target:self action:@selector(backBtnClick)];

if (@available(ios 11.0,*)) {

leftItem.imageInsets = UIEdgeInsetsMake(0, -10, 0, 0);

self.navigationItem.leftBarButtonItem = leftItem;

} else {

UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];

negativeSpacer.width = -10;

self.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:negativeSpacer, leftItem, nil];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容