威鋒網(wǎng)訊,蘋果昨天推送了 iOS 10.3 的正式版,在該版本中包括一項新功能,它允許開發(fā)人員在安裝應(yīng)用后更改應(yīng)用圖標(biāo),并將自定義應(yīng)用圖標(biāo)帶入到 iOS 的主屏幕。 MLB.com At Bat 和 NHL iOS 應(yīng)用現(xiàn)在就正在利用新的自定義圖標(biāo)功能。
在MLB.com At Bat 應(yīng)用中,用戶可以使用 MLB 俱樂部品牌的應(yīng)用圖標(biāo)來自定義應(yīng)用的主屏幕圖標(biāo),來代表他們最喜歡的球隊。同樣地,在 NHL 應(yīng)用中,應(yīng)用圖標(biāo)也可以使用球隊隊徽而不是標(biāo)準(zhǔn)的 NHL 應(yīng)用圖標(biāo)。
要更改圖標(biāo),首先需要 iOS 10.3 的環(huán)境。然后用戶需要前往應(yīng)用中的更多-設(shè)置-主屏幕圖標(biāo),然后選擇一個隊徽。
據(jù)TechCrunch 指出,雖然現(xiàn)在開發(fā)者可以提供不同的應(yīng)用圖標(biāo),但仍然無法提供動態(tài)圖標(biāo),比如可以顯示當(dāng)前溫度的天氣應(yīng)用圖標(biāo)。自定義主屏圖標(biāo),也就是蘋果提到的“用戶可選擇的應(yīng)用圖標(biāo)”意味著未來將有大量的應(yīng)用支持圖標(biāo)更換。
當(dāng)然,蘋果對應(yīng)用圖標(biāo)有著嚴(yán)格的規(guī)定,例如視覺一致性,簡潔的圖標(biāo)交換界面和明確的用戶權(quán)限來更改應(yīng)用的圖標(biāo)。
體育方面的app還是可行,因為你喜歡哪支球隊, 就可以把這個app的icon換做那個球隊的隊徽或者別的你喜歡的,感覺還是挺爽的。但是對其它類型一些app ,好像就不是很重要了,對用戶來說,可能不會去怎么關(guān)心應(yīng)用圖標(biāo)到底怎么樣,習(xí)慣了就好(當(dāng)然不能太突兀了)。
不多說,下面兩步搞定!后面附有demo
一,info.plist設(shè)置
-
主icon圖標(biāo)設(shè)置

-
導(dǎo)入自定義icon圖標(biāo)

-
Add row 如下
Icon files (iOS 5)

-
Scource code方式打開info.plist,把如下代碼copy進(jìn)去
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>Icon60X60</string>
</array>
</dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>newIcon1</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>newIcon1</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>newIcon2</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>newIcon2</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>newIcon0</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>newIcon0</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
二,相關(guān)代碼設(shè)置
- (IBAction)clickBtn:(id)sender {
[self changeAppIcon];
}
- (void)changeAppIcon
{
NSMutableArray *icomNameArray = [NSMutableArray arrayWithObjects:@"newIcon0",@"newIcon1",@"newIcon2", nil];
int i = (arc4random() % icomNameArray.count);
//ios10.3之后,更改icon圖標(biāo)的api才有效
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);
return;
}
NSLog(@"The alternate icon's name is %@",iconName);
}];
}else{
// change to alterante icon,隨機(jī)獲取alternate icon
[[UIApplication sharedApplication] setAlternateIconName:[NSString stringWithFormat:@"newIcon%d",i] completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"set icon error: %@",error);
return;
}
NSLog(@"The alternate icon's name is %@",iconName);
}];
}
}
主要就是這個API:
}];```
以上步驟都設(shè)置好后,運(yùn)行,搞定!

***
[github demo,別忘了幫忙star?? ](https://github.com/caohuoxia/CHXIconAlternateDemo/tree/master)