在开发过程中,我们有时候会遇到对线上的项目进行更改icon的需求.
譬如,明天双十一抢购,要做一个活动图标.后天什么节日的,要做一个节日图标来应景一下.那么怎么去实现呢?
在苹果官方文档中有相应的API方法去更换Icon.
- (void)setAlternateIconName:(NSString *)alternateIconName
completionHandler:(void (^)(NSError *error))completionHandler;
参数:
completionHandler 为响应的回调处理
要使用结果执行的处理程序。在尝试更改应用程序的图标后,系统通过调用处理程序报告结果。(处理器是在uikit提供的队列上执行的,不一定是在应用程序的主队列上。)处理程序没有返回值,并接受以下参数:
error 处理返回的错误信息.
到这里就已经了解如何完成任务,下面就让我们跟着实践一下.
首先导入所要更换的icon,
然后修改infoplist文件icon api,新建一个key为 Icon files (iOS 5)的字典类型item,输入icon就可选择.
这里的Primary Icon是设置app的主icon,可以在这里的Icon files数组内添加,有多个的话,依次添加,也可以这里不用填写,直接在Assets.xcassets 里配置
F7E956018A8955B1058ED59AF361FA8E.png在 Icon files(iOS 5)内添加一个Key: CFBundleAlternateIcons ,类型为字典,
到这里配置部分就完成了,
代码实现就更简单了
CDBC225A-3979-4015-826E-B008EA963E90.png
然后就完成了.
这里有一个小小的问题:就是在修改icon的时候会出来一个系统弹框.
C59B6F8D-CDA3-4923-A978-3196FADC704E.png
如果不想用户操作的话,可以利用runtime动态替换方法去修改.
8F1C224B-1F45-419A-AEEA-825DA36829BB.png
到这里就完美的完成的.
附上本文icon修改demo,欢迎各位大大指点与批评.
网友评论