前言
iOS10.3開(kāi)放了一個(gè)新的API,就是更換APP的Icon圖標(biāo)。說(shuō)明:使用下面的方法Xcode必須升級(jí)到最新的8.3.1彼乌。
函數(shù)方法
<pre>- (void)setAlternateIconName:(NSString *)alternateIconName
completionHandler:(void (^)(NSError *error))completionHandler;</pre>
參數(shù)
alternateIconName 這個(gè)是替換圖標(biāo)的名稱缩焦,在Info.plist文件里面添加一個(gè)CFBundleAlternateIcons字段,如果你想顯示應(yīng)用的主圖標(biāo)训柴,則設(shè)置字段的值為nil,鍵的主鍵是plist里面的CFBundleIcons字段。completionHandler 當(dāng)你執(zhí)行修改圖標(biāo)的操作后琼稻,系統(tǒng)通過(guò)這個(gè)block來(lái)告知結(jié)果。error 在成功時(shí)饶囚,此參數(shù)的值為零帕翻。如果出現(xiàn)錯(cuò)誤,該參數(shù)包含指示所發(fā)生的事的alternateiconname屬性的值保持不變的錯(cuò)誤對(duì)象萝风。
說(shuō)明 使用此方法將應(yīng)用程序的圖標(biāo)更改為其主圖標(biāo)或其替換圖標(biāo)之一嘀掸。你可以僅在supportsalternateicons屬性的值是可以改變圖標(biāo)。 你必須聲明你的應(yīng)用程序的主要和關(guān)鍵的cfbundleicons交替使用你的應(yīng)用程序的Info.plist文件圖標(biāo)规惰。有關(guān)如何配置你的應(yīng)用程序替代圖標(biāo)睬塌,看到關(guān)鍵信息屬性列表的關(guān)鍵參考cfbundleicons描述。更多參考官方文檔:https://developer.apple.com/reference/uikit/uiapplication/2806818-setalternateiconname?language=objc
示例
1.新建工程歇万,設(shè)置默認(rèn)APP圖標(biāo)揩晴。
2.配置plist文件
代碼如下
<pre><key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>newIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>newIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon</string>
</array>
</dict>
</dict>
</pre>
3.替換圖標(biāo)的代碼
<pre>- (IBAction)changeAppIconClick:(UIButton *)sender {
if ([UIApplication sharedApplication].supportsAlternateIcons) {
NSLog(@"you can change this app's icon");
}else{
NSLog(@"you can not change this app's icon");
return;
}
NSString *iconName = [[UIApplication sharedApplication] alternateIconName];
if (iconName) {
// change to primary icon
[[UIApplication sharedApplication] setAlternateIconName:nil completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"set icon error: %@",error);
}
NSLog(@"The alternate icon's name is %@",iconName);
}];
}else{
// change to alterante icon
[[UIApplication sharedApplication] setAlternateIconName:@"newIcon" completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"set icon error: %@",error);
}
NSLog(@"The alternate icon's name is %@",iconName);
}];
}
}</pre>
4.演示效果
DEMO下載
點(diǎn)擊下載:http://download.csdn.net/detail/u014220518/9811948
轉(zhuǎn)載自:http://blog.csdn.net/u014220518/article/details/70144075