1、navigationController 当presentViewController模态弹出时候顶部留白问题
原因是在ios 13 系统中 UIViewController的modalPresentationStyle属性 默认是最新UIModalPresentationAutomatic模式,而在iOS 13前的modalPresentationStyle默认是UIModalPresentationFullScreen。如果想继续使用全屏模式的话需要设置modalPresentationStyle。实现方式如下:
- (UIModalPresentationStyle)modalPresentationStyle{
return UIModalPresentationFullScreen;
}
创建一个UIViewController的分类,在.m文件中书写该代码即可完成设置modalPresentationStyle为全屏模式。
2、iOS13中navBar设置背景颜色无效
iOS13之前下面代码都能正常展示设置的颜色,但是在iOS13之后,导航条的图层发生了变化,backImg上面还有一层不透明的白色view。
self.navigationController.navigationBar.translucent = NO;
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:HEX_COLOR(@"FF3742")] forBarMetrics:UIBarMetricsDefault];
解决办法:在最上层添加一个视图完成颜色展示。
if ([[UIDevice currentDevice].systemVersion floatValue] >= 13.0) {
[self.navigationController.navigationBar.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if (idx == 0) {
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREENWIDTH, TopBarHeight)];
view.backgroundColor = HEX_COLOR(@"FF3742");
[obj addSubview:view];
}
}];
}
网友评论