iOS15 適配更新總結(jié)

本文主要分享一下 iOS15 上適配方案罩抗,僅做開(kāi)發(fā)記錄使用铐望,開(kāi)發(fā)過(guò)程中通過(guò)使用陸續(xù)增加捌刮。

iOS15 的適配如庭,很重要的一環(huán)就集中在UINavigationBar和UITabbar方面叹卷。
用新Xcode13編譯工程后,iOS15項(xiàng)目顯示出現(xiàn)視圖問(wèn)題。

iOS15 適配
1骤竹、UINavigationBar
2帝牡、UITabBar
3、TableView
4蒙揣、Image

? UINavigationBar

? 從 iOS 15 開(kāi)始靶溜,UINavigationBar在控制器中關(guān)聯(lián)滾動(dòng)視圖頂部使用;
在iOS15中鸣奔,UINavigationBar默認(rèn)是透明的,有滑動(dòng)時(shí)會(huì)逐漸變?yōu)槟:Ч徒祝梢酝ㄟ^(guò)改變UINavigationBar.scrollEdgeAppearance屬性直接變?yōu)槟:Ч胬辍⑴渲孟嚓P(guān)屬性-背景、字體等

現(xiàn)有問(wèn)題:
用新Xcode13編譯iOS15項(xiàng)目后断楷,導(dǎo)航欄的問(wèn)題比較明顯锨匆,調(diào)試之后發(fā)現(xiàn)是UINavigationBar部分屬性的設(shè)置在iOS15上是無(wú)效的。運(yùn)行起來(lái)后發(fā)現(xiàn)冬筒,導(dǎo)航欄顏色設(shè)置失效恐锣,字體顏色也失效,并且有導(dǎo)航欄陰影黑線(xiàn)舞痰。

查看導(dǎo)航欄的相關(guān)API:
UINavigationBarAppearance后發(fā)現(xiàn)土榴,iOS15navigationBar的相關(guān)屬性設(shè)置要通過(guò)實(shí)例UINavigationBarAppearance來(lái)實(shí)現(xiàn),UINavigationBarAppearance是iOS13更新的API响牛,應(yīng)該有人已經(jīng)在用玷禽,我們的應(yīng)用兼容iOS10+,對(duì)于導(dǎo)航欄的設(shè)置還沒(méi)有使用UINavigationBarAppearance呀打,如今在iOS15上失效矢赁,所以對(duì)于呈現(xiàn)的問(wèn)題,做如下適配:

    // 修改NarBar背景
    if (@available(iOS 15.0, *)) {
        
        UINavigationBarAppearance *appearance = [[UINavigationBarAppearance alloc] init];
        // 背景色
        appearance.backgroundColor = [UIColor blueColor];
        // 去掉半透明效果
        appearance.backgroundEffect = nil;
        // 標(biāo)題字體顏色及大小
        appearance.titleTextAttributes = @{
            NSForegroundColorAttributeName : [UIColor whiteColor],
            NSFontAttributeName : [UIFont boldSystemFontOfSize:18],
        };
        // 設(shè)置導(dǎo)航欄下邊界分割線(xiàn)透明
        appearance.shadowImage = [[UIImage alloc] init];
        // 去除導(dǎo)航欄陰影(如果不設(shè)置clear贬丛,導(dǎo)航欄底下會(huì)有一條陰影線(xiàn))
        appearance.shadowColor = [UIColor clearColor];
        // standardAppearance:常規(guī)狀態(tài), 標(biāo)準(zhǔn)外觀撩银,iOS15之后不設(shè)置的時(shí)候,導(dǎo)航欄背景透明
        self.navigationBar.standardAppearance = appearance;
        // scrollEdgeAppearance:被scrollview向下拉的狀態(tài), 滾動(dòng)時(shí)外觀豺憔,不設(shè)置的時(shí)候额获,使用標(biāo)準(zhǔn)外觀
        self.navigationBar.scrollEdgeAppearance = appearance;
    }

? UITabBar

? 從 iOS 15 開(kāi)始, UITabBar 在控制器中關(guān)聯(lián)滾動(dòng)視圖底部時(shí)使用UITabBarAppearance.scrollEdgeAppearance配置相關(guān)屬性-背景恭应、字體等

現(xiàn)有問(wèn)題:
用新Xcode13編譯iOS15項(xiàng)目后咪啡,tabbar的問(wèn)題和navigationBar的問(wèn)題屬于類(lèi)類(lèi)似环础,運(yùn)行起來(lái)后發(fā)現(xiàn)茂契,tabbar背景顏色設(shè)置失效,字體顏色也失效缸匪,并且陰影設(shè)置也失效。

可查看TabBar的相關(guān)API:
UITabBarAppearance后發(fā)現(xiàn)准夷,iOS15的tabBar的相關(guān)屬性設(shè)置要通過(guò)實(shí)例UITabBarAppearance來(lái)設(shè)置钥飞,所以對(duì)于呈現(xiàn)的問(wèn)題,做如下適配:

// 修改tabbar背景
if (@available(iOS 15.0, *)) {
        
        UITabBarAppearance *appearance = [UITabBarAppearance new];
        //tabBar背景顏色
        appearance.backgroundColor = [UIColor whiteColor];
       // 去掉半透明效果
        appearance.backgroundEffect = nil;
       // tabBaritem title選中狀態(tài)顏色
       appearance.stackedLayoutAppearance.selected.titleTextAttributes = @{
            NSForegroundColorAttributeName:KColorFromRGB(0x53A2F8),
            NSFontAttributeName:[UIFont systemFontOfSize:12],
        };
        //tabBaritem title未選中狀態(tài)顏色
        appearance.stackedLayoutAppearance.normal.titleTextAttributes =  @{
            NSForegroundColorAttributeName:KColorFromRGB(0x7E7E7E),
            NSFontAttributeName:[UIFont systemFontOfSize:12],
        };
        self.tabBar.scrollEdgeAppearance = appearance;
        self.tabBar.standardAppearance = appearance;
}

? TableView

? 從 iOS 15 開(kāi)始衫嵌,TableView 增加sectionHeaderTopPadding屬性读宙,默認(rèn)情況sectionHeaderTopPadding會(huì)有22個(gè)像素的高度,及默認(rèn)情況楔绞,TableView section header增加22像素的高度

可做如下適配:

    if (@available(iOS 15.0, *)) {
        self.tableView.sectionHeaderTopPadding = 0;
    }

? Image

? 在iOS15中结闸,UIImageWriteToSavedPhotosAlbum存儲(chǔ)圖片之后的回調(diào)不再返回圖片了,會(huì)返回nil酒朵,如果在回調(diào)方法里面操作image有可能會(huì)直接Crash桦锄,目前的解決辦法聲明一個(gè)全局image去記錄,后面再去操作:

self.image = savedImage;
UIImageWriteToSavedPhotosAlbum(savedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
  
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{
    // self.image doing...
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蔫耽,一起剝皮案震驚了整個(gè)濱河市结耀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌匙铡,老刑警劉巖图甜,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異鳖眼,居然都是意外死亡黑毅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)钦讳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)博肋,“玉大人,你說(shuō)我怎么就攤上這事蜂厅》朔玻” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵掘猿,是天一觀的道長(zhǎng)病游。 經(jīng)常有香客問(wèn)我,道長(zhǎng)稠通,這世上最難降的妖魔是什么衬衬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮改橘,結(jié)果婚禮上滋尉,老公的妹妹穿的比我還像新娘。我一直安慰自己飞主,他們只是感情好狮惜,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布高诺。 她就那樣靜靜地躺著,像睡著了一般碾篡。 火紅的嫁衣襯著肌膚如雪虱而。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,394評(píng)論 1 310
  • 那天开泽,我揣著相機(jī)與錄音牡拇,去河邊找鬼。 笑死穆律,一個(gè)胖子當(dāng)著我的面吹牛惠呼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播峦耘,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼剔蹋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了贡歧?” 一聲冷哼從身側(cè)響起滩租,我...
    開(kāi)封第一講書(shū)人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤赋秀,失蹤者是張志新(化名)和其女友劉穎利朵,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體猎莲,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绍弟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了著洼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片樟遣。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖身笤,靈堂內(nèi)的尸體忽然破棺而出豹悬,到底是詐尸還是另有隱情,我是刑警寧澤液荸,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布瞻佛,位于F島的核電站,受9級(jí)特大地震影響娇钱,放射性物質(zhì)發(fā)生泄漏伤柄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一文搂、第九天 我趴在偏房一處隱蔽的房頂上張望适刀。 院中可真熱鬧,春花似錦煤蹭、人聲如沸笔喉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)然遏。三九已至贫途,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間待侵,已是汗流浹背丢早。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秧倾,地道東北人怨酝。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像那先,于是被迫代替她去往敵國(guó)和親农猬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

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

  • 背景 按照往年新系統(tǒng)發(fā)布的時(shí)間規(guī)律售淡,新的系統(tǒng)預(yù)計(jì)在9月20日左右發(fā)布斤葱,目前beta版本已經(jīng)更新到beta6。想必都...
    冬冬吧閱讀 15,532評(píng)論 17 20
  • 本文作為自己準(zhǔn)備適配iOS15所用揖闸,在開(kāi)始適配之前揍堕,先去學(xué)習(xí)各位同學(xué)的文章,記錄在此備用汤纸。 1衩茸、導(dǎo)航欄UINavi...
    iOS_zy閱讀 14,442評(píng)論 5 61
  • IOS15適配 導(dǎo)航欄UINavigationBar 從 iOS 15 開(kāi)始,UINavigationBar贮泞、UI...
    那位小姐閱讀 836評(píng)論 0 0
  • 前言 環(huán)境 在 升級(jí)xcode 13.0 之后楞慈,正式開(kāi)始支持 iOS15,就需要做適配 iOS15了啃擦,在 xcod...
    孤雁_南飛閱讀 7,776評(píng)論 16 31
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月囊蓝,有人笑有人哭,有人歡樂(lè)有人憂(yōu)愁令蛉,有人驚喜有人失落聚霜,有的覺(jué)得收獲滿(mǎn)滿(mǎn)有...
    陌忘宇閱讀 8,544評(píng)論 28 53