iOS技术交流iOS Developer

iOS10.3:动态改变APP图标

2017-05-08  本文已影响225人  HuyaRC

分享是每个优秀的程序员所必备的品质


iOS 10.3

iOS 10.3 新增了更换应用图标的功能。开发者提供多个图标的选择,用户可以自由切换这些图标。

官方文档

其实就是在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

Demo:RCChangeIcons

个人浅见,有误的地方欢迎指正
上一篇下一篇

猜你喜欢

热点阅读