iOS 13适配总结

2020-04-08  本文已影响0人  cheng1314

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];
                }
                
            }];
        }
持续更新中...
上一篇下一篇

猜你喜欢

热点阅读