iOS13 的適配

1.限制使用 KVC 修改私有屬性

iOS13以后已經(jīng)不能肆無(wú)忌憚的通過(guò)?KVC來(lái)修改一些沒(méi)有暴露出來(lái)的屬性了,否則會(huì)崩潰,例如以下代碼

[_textField setValue:[UIColor xxx] forKeyPath:@"_placeholderLabel.textColor"];?

[searchBar valueForKey:@"_searcField"];

可以通過(guò) TextField 的 attributeString 設(shè)置

2.模態(tài)彈出默認(rèn)交互改變

之前的默認(rèn)交互是UIModalPresentationFullScreen,iOS13 后是UIModalPresentationAutomatic.設(shè)置一下即可

?myVC.modalPresentationStyle = UIModalPresentationFullScreen;

3.藍(lán)牙權(quán)限說(shuō)明

Privacy - Bluetooth Always Usage Description

替代了

Privacy - Bluetooth Peripheral Usage Description

info.plist 必須要添加Privacy - Bluetooth Always Usage Description,否則會(huì)崩潰;

4.兼容iOS13的黑色主題色

升級(jí) iOS13 以后,默認(rèn)UIUserInterfaceStyle為 Dark,導(dǎo)致很多界面顯示風(fēng)格不一致,

? ??4.1,識(shí)別當(dāng)前的配色方案侨舆,可以通過(guò)viewcontroller.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark來(lái)獲取穗熬,需要添加if (@available(iOS 12.0, *))以支持iOS12以下的系統(tǒng)。

? ??4.2,全局關(guān)閉黑暗模式,如果前期沒(méi)有足夠時(shí)間去適配暗黑模式,可以通過(guò)全局關(guān)閉黑暗模式避免暗黑模式下顯示問(wèn)題,只需要在 info.plist 文件里將UIUserInterfaceStyle key 的值設(shè)置為 Light即可

5.?LaunchImage將廢棄,使用LaunchScreen

使用LaunchImage的話(huà)渊鞋,要求我們必須提供各種屏幕尺寸的啟動(dòng)圖饼酿,來(lái)適配各種設(shè)備畔师,隨著蘋(píng)果設(shè)備尺寸越來(lái)越多,這種方式顯然不夠 Flexible糟红。而使用 LaunchScreen的話(huà)瘦癌,情況會(huì)變的很簡(jiǎn)單猪贪, LaunchScreen是支持AutoLayout+SizeClass的,所以適配各種屏幕都不在話(huà)下讯私。

從2020年4月開(kāi)始热押,所有使? iOS13 SDK的 App將必須提供 LaunchScreen,LaunchImage即將退出歷史舞臺(tái)斤寇。

6.tabbar 紅點(diǎn)偏移

如果之前有通過(guò)TabBar上圖片位置來(lái)設(shè)置紅點(diǎn)位置桶癣,在iOS13上會(huì)發(fā)現(xiàn)顯示位置都在最左邊去了。遍歷UITabBarButton的subViews發(fā)現(xiàn)只有在TabBar選中狀態(tài)下才能取到UITabBarSwappableImageView娘锁,解決辦法是修改為通過(guò)UITabBarButton的位置來(lái)設(shè)置紅點(diǎn)的frame

?Push后Pop回來(lái)tabbar選中文字顏色變系統(tǒng)藍(lán)色

self.tabBar.tinColor = color;

或者

if (@available(iOS 10.0, *)) {

self.tabBar.unselectedItemTintColor = color;

}

7. UITabBar上分割線呢操作

[[UITabBar appearance] setBackgroundImage:[UIImage new]];

[[UITabBar appearance] setShadowImage:[UIImage new]];

原來(lái)設(shè)置分割線的方式失效了,最新更改TabBar上細(xì)線方式實(shí)例牙寞,利用蘋(píng)果提供的新API,為所欲為(改圖片莫秆,改顏色)

if (@available(iOS 13, *)) {

#ifdef __IPHONE_13_0

UITabBarAppearance *appearance = [self.tabBar.standardAppearance copy];

appearance.backgroundImage = [UIImage new];

appearance.shadowImage = [UIImage imageNamed:@"Dotted_Line"];

appearance.shadowColor = [UIColor clearColor];

self.tabBar.standardAppearance = appearance;

#endif

} else {

self.tabBar.backgroundImage = [UIImage new];

self.tabBar.shadowImage = [UIImage imageNamed:@"Dotted_Line"];

}

8.可排序tableview的右側(cè)三條杠會(huì)隨著主題色改變色彩间雀,并不會(huì)檢測(cè)你自己設(shè)置的屏幕底色。兩種方法镊屎,

? ? 3.1.根據(jù)上面的方法來(lái)識(shí)別主題色從而給不同的底色來(lái)適配惹挟。

? ??3.2.強(qiáng)行更改三條杠為其他圖片。

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 = .....;

????????????????}

????????????}

????????}

? ?}


9.黑線處理crash

之前為了處理搜索框的黑線問(wèn)題會(huì)遍歷后刪除UISearchBarBackground缝驳,在iOS13會(huì)導(dǎo)致UI渲染失敗crash;解決辦法是設(shè)置UISearchBarBackground的layer.contents為nil

public func clearBlackLine()

{

for view in self.subviews.last!.subviews

{

if view.isKind(of:NSClassFromString("UISearchBarBackground")!)

{

view.backgroundColor=UIColor.white

view.layer.contents=nilbreak

}

}

10.UIWebView棄用

蘋(píng)果已經(jīng)從iOS13禁止UIWebView方式了连锯,需要更換WKWebView(過(guò)渡期仍可用,只是郵件警告党巾,目前不影響審核)

11.WKWebView 中測(cè)量頁(yè)面內(nèi)容高度的方式變更

iOS 13以前 document.body.scrollHeight iOS 13開(kāi)始 document.documentElement.scrollHeight

12.CNCopyCurrentNetworkInfo變化

iOS13下不能正常獲取到WiFi的ssid萎庭,需要用戶(hù)開(kāi)啟定位權(quán)限或者使用新的API?NEHotspotConfiguration獲取

13.在其他queue里不能直接創(chuàng)建viewcontroller霜医,alloc都不行齿拂,否則會(huì)被阻塞。

以往我都是先創(chuàng)建好controller肴敛,在present的時(shí)候再跑到dispatch_async(dispatch_get_main_queue()里署海,但iOS13不行,創(chuàng)建controller時(shí)就需要在main queue里医男。

14.Xcode10往iOS13上編譯運(yùn)行提示?Could not find Developer Disk Image

下載開(kāi)發(fā)包

強(qiáng)制退出Xcode(必須退出干凈)

前往"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport"粘貼解壓縮文件(以自己實(shí)際路徑實(shí)際名稱(chēng))

15.第三方登錄

蘋(píng)果更新的審核規(guī)范中提到使用第三方登錄的APP必須要將apple登錄作為一個(gè)可選擇項(xiàng),且必須放首位.

16.MPMoviePlayerController 在iOS 13已經(jīng)不能用了

替代方案就是AVKit里面的那套播放器砸狞。

17.App啟動(dòng)過(guò)程中部分View可能無(wú)法實(shí)時(shí)獲取到frame

可能是為了優(yōu)化啟動(dòng)速度,App 啟動(dòng)過(guò)程中镀梭,部分View可能無(wú)法實(shí)時(shí)獲取到正確的frame

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末刀森,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子报账,更是在濱河造成了極大的恐慌研底,老刑警劉巖埠偿,帶你破解...
    沈念sama閱讀 212,029評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異榜晦,居然都是意外死亡冠蒋,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)乾胶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)抖剿,“玉大人,你說(shuō)我怎么就攤上這事识窿≌独桑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,570評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵喻频,是天一觀的道長(zhǎng)孽拷。 經(jīng)常有香客問(wèn)我,道長(zhǎng)半抱,這世上最難降的妖魔是什么脓恕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,535評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮窿侈,結(jié)果婚禮上炼幔,老公的妹妹穿的比我還像新娘。我一直安慰自己史简,他們只是感情好乃秀,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著圆兵,像睡著了一般跺讯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上殉农,一...
    開(kāi)封第一講書(shū)人閱讀 49,850評(píng)論 1 290
  • 那天刀脏,我揣著相機(jī)與錄音,去河邊找鬼超凳。 笑死愈污,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的轮傍。 我是一名探鬼主播暂雹,決...
    沈念sama閱讀 39,006評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼创夜!你這毒婦竟也來(lái)了杭跪?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,747評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涧尿,沒(méi)想到半個(gè)月后桨醋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,207評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡现斋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評(píng)論 2 327
  • 正文 我和宋清朗相戀三年喜最,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庄蹋。...
    茶點(diǎn)故事閱讀 38,683評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞬内,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出限书,到底是詐尸還是另有隱情虫蝶,我是刑警寧澤,帶...
    沈念sama閱讀 34,342評(píng)論 4 330
  • 正文 年R本政府宣布倦西,位于F島的核電站能真,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏扰柠。R本人自食惡果不足惜粉铐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評(píng)論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卤档。 院中可真熱鬧蝙泼,春花似錦、人聲如沸劝枣。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,772評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舔腾。三九已至溪胶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稳诚,已是汗流浹背哗脖。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,004評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留采桃,地道東北人懒熙。 一個(gè)月前我還...
    沈念sama閱讀 46,401評(píng)論 2 360
  • 正文 我出身青樓丘损,卻偏偏與公主長(zhǎng)得像普办,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子徘钥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評(píng)論 2 349

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