动态更换应用图标AppIcon

本文介绍了在iOS 10.3及以上版本中如何动态更换应用图标AppIcon,包括新建项目设置图标、配置动态展示的App图标、代码实现以及解决更换时弹框问题。主要流程涉及设置Assets.xcassets中的AppIcon,配置info.plist,以及使用Objective-C代码进行更换。
摘要由CSDN通过智能技术生成

动态更换应用图标AppIcon

在 iOS 10.3 以上苹果添加了更换图标的功能,通过这个功能,我们可以在适当的时候采取特定的方式为我们的App更换图标。使用的场景,通常用于公司活动,逢年过节等换一个应用图标AppIcon 来应景,不需要进行发版 。

主要流程如下:

1. 新建测试项目,设置项目的主app图标。方式和正常设置AppIcon方式一样。
  1. 在Assets.xcassets文件中设置AppIcon,如下图:
    在这里插入图片描述

  2. 在TARGETS—>General—>App Icons and Lauch Images—>App Icons Source设置图标来源:AppIcon
    屏幕图为
    在这里插入图片描述

2、配置需要动态展示的App图标图片
  1. 动态更换的icon不能放在Assets.xcassets里!但是正常的主icon还是可以在Assets.xcassets里设置的. 动态更换的icon 放到工程目录下就可以了,
    一个标准的Icon图集, 需要十几种尺寸, 比如: 20, 29, 40, 60 故动态的图片可添加多尺寸 也可不加 但是不能小 否则会模糊
    在这里插入图片描述

  2. 配置info.plist文件
    在这里插入图片描述

这里的Icon files(iOS 5)是个字典,其中默认包含两个Key值,分别是:
Primary Icon(主icon):设置app的主icon,可以在这里的Icon files数组内添加,有多个的话,依次添加,也可以这里不用填写,直接在Assets.xcassets 里配置;
Newsstand Icon(期刊icon):设置所有用户订阅的报刊和杂志类的图标,目前我们用不到,先不用管。

在 Icon files(iOS 5)内添加一个Key: CFBundleAlternateIcons ,类型为字典。
在这个字典里配置我们所有需要动态修改的icon:键为icon的名称,值为一个字典(这个字典里包含两个键:CFBundleIconFiles,其值类型为Array,内容为icon的名称;UIPrerenderedIcon,其值类型为bool,内容为NO,也可以不加此key)

CFBundleIcons:
一个字典,包含所有AppIcon信息,即上图的Icon files(iOS 5)
CFBundlePrimaryIcon:
如果已经在Assets.xcassets中设置了AppIcon,那么CFBundlePrimaryIcon中的配置会被忽略,Assets.xcassets的AppIcon将会自动配置到CFBundlePrimaryIcon中。
CFBundleAlternateIcons:
一个数组,负责配置可供替换的icon信息
UIPrerenderedIcon:
是否已经预渲染,如果不设置该项或者设为NO。系统会自动为icon进行渲染增加光泽

3、代码示例

在一段时间进行更换图标

+ (void)changeIconEvent {
   
    NSDate *date = [NSDate date];
    NSCalendar *calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
    calendar.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:8 * 3600];
    NSInteger year = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值