iOS13新坑(轉自Cocoachina)

一、用presentViewController而非navigator,但在iOS13裏默認是可下拉摺疊的對話框,這樣帶來一個界面排版的高度並非屏幕高度,從而影響界面效果。能夠將viewcontroller.modalPresentationStyle設置爲UIModalPresentationFullScreen來回到原來的樣式。
二、要兼容iOS13的黑色主題色,就必須去識別當前的配色方案,能夠經過viewcontroller.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark來獲取,須要添加if (@available(iOS 12.0, *))以支持iOS12如下的系統。
三、可排序tableview的右側三條槓會隨着主題色改變色彩,並不會檢測你本身設置的屏幕底色。兩種方法,一、根據上面的方法來識別主題色從而給不一樣的底色來適配。二、強行更改三條槓爲其餘圖片。
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 = .....;
                }
            }
        }
    }

四、在其餘queue裏不能直接建立viewcontroller,alloc都不行,不然會被阻塞。以往我都是先建立好controller,在present的時候再跑到dispatch_async(dispatch_get_main_queue()裏,但iOS13不行,建立controller時就須要在main queue裏。async

相關文章
相關標籤/搜索