iOS10.3:动态改变APP图标
2017-05-08 本文已影响225人
HuyaRC
分享是每个优秀的程序员所必备的品质
iOS 10.3
iOS 10.3 新增了更换应用图标的功能。开发者提供多个图标的选择,用户可以自由切换这些图标。
- api均为10.3以上
- 当前app是否支持备用的icon,需要判断
其实就是在Info.plist里面使用CFBundleIcons声明当前app的primary和alternate icon。
上代码:
<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>AppIcon60X60</string>
</array>
</dict>
</dict>
info.plist截图
tips:苹果默认会在 App Store 里的应用图标上半部自动添加高亮特 效,虽是好心但有时候这半个光圈会破坏图标设计者的原作。如果您要去掉这一高亮特效,可以在程序的 info.plist 里添加一个值类型为 boolean 的字段:UIPrerenderedIcon,值设定为YES(或者是:Icon already includes gloss effects,值设定为YES)。再上传应用,App Store 就不会在图标上添加高亮特效了。
切换图标代码:
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) {
[[UIApplication sharedApplication] setAlternateIconName:nil completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"set icon error: %@",error);
}else{
NSLog(@"Set up successfully,Press the Home key to view");
}
}];
}else{
[[UIApplication sharedApplication] setAlternateIconName:@"newIcon" completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"set icon error: %@",error);
}else{
NSLog(@"Set up successfully,Press the Home key to view");
}
}];
}
changeIcons.gif