iOS動(dòng)態(tài)更換應(yīng)用icon

首先需要注意的是瓜饥,動(dòng)態(tài)更換圖標(biāo)需要在iOS10.3之后才可以使用

第一步浴骂、需要在info.plist中配置圖標(biāo)的一些信息,具體如下

根據(jù)自己的需求修改圖標(biāo)樣式

如下為info.plist中的配置趣苏,拿走不謝
<key>CFBundleIcons</key> <dict> <key>CFBundleAlternateIcons</key> <dict> <key>10.1</key> <dict> <key>UIPrerenderedIcon</key> <false/> <key>CFBundleIconFiles</key> <array> <string>Icon-29</string> <string>Icon-60</string> <string>Icon-Spotlight-40</string> <string>icon-1024</string> </array> </dict> <key>7.1</key> <dict> <key>UIPrerenderedIcon</key> <false/> <key>CFBundleIconFiles</key> <array> <string></string> </array> </dict> </dict> <key>CFBundlePrimaryIcon</key> <dict> <key>CFBundleIconName</key> <string></string> <key>CFBundleIconFiles</key> <array> <string></string> </array> <key>UIPrerenderedIcon</key> <false/> </dict> <key>UINewsstandIcon</key> <dict> <key>CFBundleIconFiles</key> <array> <string></string> </array> <key>UINewsstandBindingType</key> <string>UINewsstandBindingTypeMagazine</string> <key>UINewsstandBindingEdge</key> <string>UINewsstandBindingEdgeLeft</string> </dict> </dict>


第二步食磕、需要執(zhí)行代碼去進(jìn)行更換圖標(biāo)的操作,這種情況下會(huì)有彈框提示更換彬伦,點(diǎn)擊確定會(huì)進(jìn)行更換圖標(biāo)操作

- (void)setAppIconWithName:(NSString*)iconName {

? ? if(@available(iOS10.3, *)) {

? ? ? ? if (![[UIApplication sharedApplication] supportsAlternateIcons]) {

? ? ? ? ? ? return;

? ? ? ? }

? ? }else{

? ? ? ? // Fallback on earlier versions

? ? }

? ? if([iconNameisEqualToString:@""]) {

? ? ? ? iconName =nil;

? ? }

? ? if(@available(iOS10.3, *)) {

? ? ? ? [[UIApplication sharedApplication] setAlternateIconName:iconName completionHandler:^(NSError * _Nullable error) {

? ? ? ? ? ? if(error) {

? ? ? ? ? ? ? ? NSLog(@"更換app圖標(biāo)發(fā)生錯(cuò)誤了 : %@",error);

? ? ? ? ? ? }

? ? ? ? }];

? ? }else{

? ? ? ? // Fallback on earlier versions

? ? }

}


第三步单绑、優(yōu)化彈框,在用戶無感知的情況下進(jìn)行圖標(biāo)切換搂橙,需要通過runtime來處理此操作歉提,寫一個(gè)UIViewController擴(kuò)展類,具體處理如下

+ (void)load{

? ? staticdispatch_once_tonceToken;

? ? dispatch_once(&onceToken, ^{

? ? ? ? MethodpresentM =class_getInstanceMethod(self.class,@selector(presentViewController:animated:completion:));

? ? ? ? MethodpresentSwizzlingM =class_getInstanceMethod(self.class,@selector(dy_presentViewController:animated:completion:));

? ? ? ? method_exchangeImplementations(presentM, presentSwizzlingM);

? ? });

}

- (void)dy_presentViewController:(UIViewController*)viewControllerToPresentanimated:(BOOL)flagcompletion:(void(^)(void))completion {

? ? if([viewControllerToPresentisKindOfClass:[UIAlertControllerclass]]) {

? ? ? ? UIAlertController*alertController = (UIAlertController*)viewControllerToPresent;

? ? ? ? if(alertController.title==nil&& alertController.message==nil) {

? ? ? ? ? ? return;

? ? ? ? }else{

? ? ? ? ? ? [selfdy_presentViewController:viewControllerToPresentanimated:flagcompletion:completion];

? ? ? ? ? ? return;

? ? ? ? }

? ? }

? ? [selfdy_presentViewController:viewControllerToPresentanimated:flagcompletion:completion];

}


到這里完整的更換圖標(biāo)就可以了,親測可用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末废离,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蔬顾,更是在濱河造成了極大的恐慌湘捎,老刑警劉巖窄刘,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異娩践,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)材泄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門吨岭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事魁巩〗愀。” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵肾扰,是天一觀的道長。 經(jīng)常有香客問我集晚,道長换怖,這世上最難降的妖魔是什么甩恼? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任条摸,我火速辦了婚禮铸屉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘彻坛。我一直安慰自己,他們只是感情好昌屉,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布间驮。 她就那樣靜靜地躺著,像睡著了一般竞帽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屹篓,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天堆巧,我揣著相機(jī)與錄音妄荔,去河邊找鬼。 笑死灶轰,一個(gè)胖子當(dāng)著我的面吹牛刷钢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播内地,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼非凌!你這毒婦竟也來了荆针?” 一聲冷哼從身側(cè)響起敞嗡,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤喉悴,失蹤者是張志新(化名)和其女友劉穎玖媚,沒想到半個(gè)月后箕肃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體今魔,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡错森,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涩维。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锋叨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情薄湿,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布豺瘤,位于F島的核電站,受9級(jí)特大地震影響蚕泽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜须妻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一泛领、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧渊鞋,春花似錦、人聲如沸锡宋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奠滑。三九已至,卻和暖如春宋税,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呢簸。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工乏屯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辰晕。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像替裆,于是被迫代替她去往敵國和親校辩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辆童,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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