威鋒網(wǎng)訊,蘋果昨天推送了 iOS 10.3 的正式版寒匙,在該版本中包括一項新功能零如,它允許開發(fā)人員在安裝應用后更改應用圖標,并將自定義應用圖標帶入到 iOS 的主屏幕锄弱。 MLB.com At Bat 和 NHL iOS 應用現(xiàn)在就正在利用新的自定義圖標功能考蕾。
在MLB.com At Bat 應用中,用戶可以使用 MLB 俱樂部品牌的應用圖標來自定義應用的主屏幕圖標会宪,來代表他們最喜歡的球隊肖卧。同樣地,在 NHL 應用中掸鹅,應用圖標也可以使用球隊隊徽而不是標準的 NHL 應用圖標喜命。
要更改圖標,首先需要 iOS 10.3 的環(huán)境河劝。然后用戶需要前往應用中的更多-設置-主屏幕圖標,然后選擇一個隊徽矛紫。
據(jù)TechCrunch 指出赎瞎,雖然現(xiàn)在開發(fā)者可以提供不同的應用圖標,但仍然無法提供動態(tài)圖標颊咬,比如可以顯示當前溫度的天氣應用圖標务甥。自定義主屏圖標牡辽,也就是蘋果提到的“用戶可選擇的應用圖標”意味著未來將有大量的應用支持圖標更換。
當然敞临,蘋果對應用圖標有著嚴格的規(guī)定态辛,例如視覺一致性,簡潔的圖標交換界面和明確的用戶權限來更改應用的圖標挺尿。
體育方面的app還是可行奏黑,因為你喜歡哪支球隊, 就可以把這個app的icon換做那個球隊的隊徽或者別的你喜歡的编矾,感覺還是挺爽的熟史。但是對其它類型一些app ,好像就不是很重要了窄俏,對用戶來說蹂匹,可能不會去怎么關心應用圖標到底怎么樣,習慣了就好(當然不能太突兀了)凹蜈。
不多說限寞,下面兩步搞定!后面附有demo
一仰坦,info.plist設置
-
主icon圖標設置
-
導入自定義icon圖標
-
Add row 如下
Icon files (iOS 5)
-
Scource code方式打開info.plist履植,把如下代碼copy進去
<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>
二,相關代碼設置
- (IBAction)clickBtn:(id)sender {
[self changeAppIcon];
}
- (void)changeAppIcon
{
NSMutableArray *icomNameArray = [NSMutableArray arrayWithObjects:@"newIcon0",@"newIcon1",@"newIcon2", nil];
int i = (arc4random() % icomNameArray.count);
//ios10.3之后缎岗,更改icon圖標的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,隨機獲取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:
}];```
以上步驟都設置好后静尼,運行,搞定传泊!
![](http://upload-images.jianshu.io/upload_images/2026235-9a68d9303cfe9d8e.gif?imageMogr2/auto-orient/strip)
***
[github demo鼠渺,別忘了幫忙star?? ](https://github.com/caohuoxia/CHXIconAlternateDemo/tree/master)