当初早iOS 10.3发布时候就听说加入了更换图标的功能。只不过一直没有机会试验
最近在开发项目时候,用到了这个功能就顺手记录一下
-
首先需要我们在plist 里面增加 以下的key
屏幕快照 2018-01-26 17.17.56.png
问题:在直接在plist 里面加key 时候,需要修改下默认格式
-
最后结果展示
屏幕快照 2018-01-26 17.18.20.png
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>blue</key>
<dict>
<key>UIPrerenderedIcon</key>
<false/>
<key>CFBundleIconFiles</key>
<array>
<string>blue</string>
</array>
</dict>
<key>rocket</key>
<dict>
<key>UIPrerenderedIcon</key>
<false/>
<key>CFBundleIconFiles</key>
<array>
<string>rocket</string>
</array>
</dict>
</dict>
</dict>
此处我们可以添加多个icon,例如天气预报类APP可以让icon 显示基本天气状况
调用系统方法进行更换icon
if ([UIApplication sharedApplication].supportsAlternateIcons) {
NSString * icon = [UIApplication sharedApplication].alternateIconName;
if (icon) {
[[UIApplication sharedApplication] setAlternateIconName:nil completionHandler:^(NSError * _Nullable error) {
}];
}else{
[[UIApplication sharedApplication] setAlternateIconName:@"blue" completionHandler:^(NSError * _Nullable error) {
}];
}
}else{
[SVProgressHUD showInfoWithStatus:@"当前系统版本不支持更换图标"];
}
CFBundlePrimaryIcon 系统默认图标,默认还是放在Assets.xcassets 里面
要更换的图标,直接拖到工程里面即可 (不要拖到 Assets 里面), 如果适配了iPad ,还需要加入iPad 大小的icon