記錄現(xiàn)有iOS項目對iOS13的適配

近日钓瞭,網(wǎng)上瘋傳微信若不支持蘋果暗黑模式怖辆,即將面臨下架處理。有人辟謠丙笋,有人瘋傳雹舀,不管真假芦劣,微信這么強大的團(tuán)隊,想要做個蘋果暗黑模式的兼容應(yīng)該也不是什么問題说榆,但是對于一些小公司的App虚吟,還是要簡單的做一下iOS13的兼容性的,之前因為某第三方SDk的兼容性問題签财,一直用的是iOS12 的SDK打包上傳appStore串慰,但是蘋果要求從 4 月 30 日起,所有提交到 App Store 的 iOS 應(yīng)用都需要使用 iOS 13 SDK 或更高版本構(gòu)建,所以唱蒸,所以使用iOS13SDK勢在必行邦鲫,順便使用暗黑模式測試了一下應(yīng)用,還是發(fā)現(xiàn)有些問題需要處理的神汹。

1.如果App不做暗黑模式的兼容庆捺,需要在Info.plist中添加User Interface Style 并設(shè)置值為Light,這樣App里還是跟原來的的樣式屁魏,如果不添加滔以,很多白色(淺色)的頁面會被系統(tǒng)渲染成暗黑色。

2.狀態(tài)欄的兼容性設(shè)置氓拼,iOS13新增一個UIStatusBarStyleDarkContent醉者,如下:

typedef NS_ENUM(NSInteger, UIStatusBarStyle) {
    UIStatusBarStyleDefault                                  = 0, // Automatically chooses light or dark content based on the user interface style
    UIStatusBarStyleLightContent     API_AVAILABLE(ios(7.0)) = 1, // Light content, for use on dark backgrounds
    UIStatusBarStyleDarkContent     API_AVAILABLE(ios(13.0)) = 3, // Dark content, for use on light backgrounds
    
    UIStatusBarStyleBlackTranslucent NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 1,
    UIStatusBarStyleBlackOpaque      NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 2,
} API_UNAVAILABLE(tvos);

所以需要設(shè)置iOS13狀態(tài)欄為黑色,需要加一個判斷:

if (@available(iOS 13.0, *)) {
        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDarkContent;
    } else {
        
        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
        // Fallback on earlier versions
    }

3.在iOS13上使用presentViewController進(jìn)行頁面跳轉(zhuǎn)披诗,不會再是全屏的,需要手設(shè)置vc.modalPresentationStyle = 0或者vc.modalPresentationStyle = UIModalPresentationFullScreen;

typedef NS_ENUM(NSInteger, UIModalPresentationStyle) {
    UIModalPresentationFullScreen = 0,
    UIModalPresentationPageSheet API_AVAILABLE(ios(3.2)) API_UNAVAILABLE(tvos),
    UIModalPresentationFormSheet API_AVAILABLE(ios(3.2)) API_UNAVAILABLE(tvos),
    UIModalPresentationCurrentContext API_AVAILABLE(ios(3.2)),
    UIModalPresentationCustom API_AVAILABLE(ios(7.0)),
    UIModalPresentationOverFullScreen API_AVAILABLE(ios(8.0)),
    UIModalPresentationOverCurrentContext API_AVAILABLE(ios(8.0)),
    UIModalPresentationPopover API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(tvos),
    UIModalPresentationBlurOverFullScreen API_AVAILABLE(tvos(11.0)) API_UNAVAILABLE(ios) API_UNAVAILABLE(watchos),
    UIModalPresentationNone API_AVAILABLE(ios(7.0)) = -1,
    UIModalPresentationAutomatic API_AVAILABLE(ios(13.0)) = -2,
};

4.[UIApplication sharedApplication].keyWindow 被棄用立磁,但是目前在xcode11中還是可以使用的呈队,沒有給出任何警告,App也能正常運行

@property(nullable, nonatomic,readonly) UIWindow *keyWindow API_DEPRECATED("Should not be used for applications that support multiple scenes as it returns a key window across all connected scenes", ios(2.0, 13.0));

但還是用官方建議的方法來訪問比較好:

[[[UIApplication sharedApplication] windows] objectAtIndex:0]

5.iOS13中禁止通過KVC方式來獲取私有屬性唱歧,會造成crash宪摧,其實在iOS13之前使用 [xxx setValue:xxx forKeyPath xxx],經(jīng)常會出現(xiàn)crash粒竖,所以盡量避免使用KVC來訪問私有屬性,對于有些控件可以自定義重寫几于,或者通過tuntime添加自己想要的屬性來滿足需求蕊苗。

6.即將廢棄的 LaunchImage
從2020年4月開始,所有使? iOS13 SDK的 App將必須提供 LaunchScreen沿彭,LaunchImage即將退出歷史舞臺朽砰。可以使用Launch Storyboards來進(jìn)行解決喉刘。

當(dāng)然iOS13還有很多新的改動瞧柔,網(wǎng)上很多大神都列的很詳細(xì),我這里只簡單記錄下對自家App的兼容性適配睦裳,能正常運行造锅,滿足需求就行。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末廉邑,一起剝皮案震驚了整個濱河市哥蔚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蛛蒙,老刑警劉巖糙箍,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宇驾,居然都是意外死亡倍靡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門课舍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來塌西,“玉大人,你說我怎么就攤上這事筝尾〖裥瑁” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵筹淫,是天一觀的道長站辉。 經(jīng)常有香客問我,道長损姜,這世上最難降的妖魔是什么饰剥? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮摧阅,結(jié)果婚禮上汰蓉,老公的妹妹穿的比我還像新娘。我一直安慰自己棒卷,他們只是感情好顾孽,可當(dāng)我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布祝钢。 她就那樣靜靜地躺著,像睡著了一般若厚。 火紅的嫁衣襯著肌膚如雪拦英。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天测秸,我揣著相機(jī)與錄音疤估,去河邊找鬼。 笑死乞封,一個胖子當(dāng)著我的面吹牛做裙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肃晚,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼锚贱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了关串?” 一聲冷哼從身側(cè)響起拧廊,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晋修,沒想到半個月后吧碾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡墓卦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年倦春,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片落剪。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡睁本,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出忠怖,到底是詐尸還是另有隱情呢堰,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布凡泣,位于F島的核電站枉疼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鞋拟。R本人自食惡果不足惜骂维,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贺纲。 院中可真熱鬧航闺,春花似錦、人聲如沸哮笆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稠肘。三九已至福铅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間项阴,已是汗流浹背滑黔。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留环揽,地道東北人略荡。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像歉胶,于是被迫代替她去往敵國和親汛兜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 技術(shù)參考: apple login IOS13適配-詳細(xì) iOS 13 適配(持續(xù)更新中) iOS13適配 掘金 ...
    nuannuan_nuan閱讀 1,042評論 0 1
  • 9月20號iOS 13 已正式發(fā)布通今,第一時間更新了最新系統(tǒng)粥谬,網(wǎng)上對其用戶體驗上的新特性的描述也很多,而對于開發(fā)者來...
    杰小冷_4957閱讀 560評論 0 2
  • 1.限制使用 KVC 修改私有屬性 iOS13以后已經(jīng)不能肆無忌憚的通過KVC來修改一些沒有暴露出來的屬性了,否則...
    Sam129閱讀 1,564評論 0 1
  • iOS 13 支持適配的機(jī)型 iPhone X辫塌、iPhone XR漏策、iPhone XS、iPhone XS Max...
    sunnyxg0812閱讀 1,575評論 2 2
  • 隨著iPhone 11的發(fā)布臼氨,iOS 13適配也提上了日程掺喻,剛好最近在做項目適配,順便總結(jié)一下:首先升級Xcode...
    二豬哥閱讀 6,215評論 2 36