iOS13新坑(转自Cocoachina)

1、用presentViewController而非navigator,但在iOS13里默认是可下拉折叠的对话框,这样带来一个界面排版的高度并不是屏幕高度,从而影响界面效果。可以将viewcontroller.modalPresentationStyle设置为UIModalPresentationFullScreen来回到原来的样式。
2、要兼容iOS13的黑色主题色,就必须去识别当前的配色方案,可以通过viewcontroller.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark来获取,需要添加if (@available(iOS 12.0, *))以支持iOS12以下的系统。
3、可排序tableview的右侧三条杠会随着主题色改变色彩,并不会检测你自己设置的屏幕底色。两种方法,1、根据上面的方法来识别主题色从而给不同的底色来适配。2、强行更改三条杠为其他图片。
for (UIView * view in self.subviews)
    {
        if ([NSStringFromClass([view class]) rangeOfString:@"Reorder"].location != NSNotFound)
        {
            for (UIView * subview in view.subviews)
            {
                if ([subview isKindOfClass: [UIImageView class]])
                {
                    ((UIImageView *)subview).image = .....;
                }
            }
        }
    }

4、在其他queue里不能直接创建viewcontroller,alloc都不行,否则会被阻塞。以往我都是先创建好controller,在present的时候再跑到dispatch_async(dispatch_get_main_queue()里,但iOS13不行,创建controller时就需要在main queue里。

posted @ 2019-07-22 15:35  会飞的夜良  阅读(3068)  评论(0编辑  收藏  举报