当前位置: 首页 > 编程日记 > 正文

iOS更改AppIcon

前言

iOS 10.3出了挺多的新功能,其中有一个就是可以自定义更改AppIcon。这个功能以前我们只能在苹果的时钟上面看出来。但是一直没有对外开放。现在开放出来,也算是一种突破。

实现

苹果在iOS 10.3中,多了一个setAlternateIconName:completionHandler:方法用于更改AppIcon。

1、我们先创建一个工程,然后在Info.plist文件里面新建一个CFBundleIcons,然后在里面配置可替换的AppIcon。

具体plist配置如下:

<key>CFBundleIcons</key>
<dict><key>CFBundlePrimaryIcon</key><dict><key>CFBundleIconFiles</key><array><string>AppIcon</string></array></dict><key>CFBundleAlternateIcons</key><dict><key>icon01</key><dict><key>CFBundleIconFiles</key><array><string>icon01</string></array></dict><key>icon02</key><dict><key>CFBundleIconFiles</key><array><string>icon02</string></array><key>UIPrerenderedIcon</key><false/></dict></dict>
</dict>
复制代码

2、将所有要替换的AppIcon加进工程里面,这里需要注意的是,不能放在Assets.xcassets里面,否则无效。

3、代码实现:

//替換icon
- (void)changeIconButtonClick:(NSUInteger)index {if ([UIApplication sharedApplication].supportsAlternateIcons) {NSLog(@"你可以更換icon");[[UIApplication sharedApplication] setAlternateIconName:_iconArr[index] completionHandler:^(NSError * _Nullable error) {if (!error) {NSLog(@"成功更換成%@",_iconArr[index]);}else{NSLog(@"error:%@",error);}}];} else {NSLog(@"非常抱歉,你不能更換icon");return;}
}//還原icon
- (void)backToPrimaryIconAction:(id)sender {if ([UIApplication sharedApplication].alternateIconName != nil) {//已經被替換掉了圖標[[UIApplication sharedApplication] setAlternateIconName:nil completionHandler:^(NSError * _Nullable error) {if (!error) {NSLog(@"成功還原圖標");} else {NSLog(@"error:%@",error);}}];}
}
复制代码

最终效果如下

附上写好的Demo


再一次感谢您花费时间阅读这篇文章!

微博: @Danny_吕昌辉
博客: SuperDanny

相关文章:

软件测试培训分享:做软件测试需要掌握数据库的知识吗?

最近几年&#xff0c;学习软件测试的同学越来越多&#xff0c;大家对于“做软件测试需要掌握数据库的知识吗?”这个问题都比较关注&#xff0c;那么下面小编就来为大家做下详细的介绍。 软件测试培训分享&#xff1a;做软件测试需要掌握数据库的知识吗?我们知道做开发、做运维…

enumeration学习

import org.junit.Test;public class enumeration { Test public void test() { System.out.print(School.name"--> "); System.out.print(School.name.getvalue()" :"); System.out.println(School.name.info()); }}enum School { name("名字&quo…

Cocoa pods的安装

使用下面命令不能移除原生的SOURCESgem sources --remove https://rubygems.org/报错如下source https://rubygems.org/ not present in cache究其原因&#xff0c;可是我上次更新的时候中断了解决方法&#xff0c;少敲一个/(这是什么鬼)gem sources --remove https://rubygems…

【青少年编程】黄羽恒:漫天飞雪

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

学习软件测试发展前景怎么样?有前途吗?

学习软件测试发展前景怎么样?有前途吗?很多人都比较关心这个问题&#xff0c;因为最近要学习软件测试技术的同学越来越多&#xff0c;大家对于今后的工作都比较迷茫&#xff0c;那么针对这个问题&#xff0c;来看看下面的详细介绍就知道了。 学习软件测试发展前景怎么样?有前…

Hello Jsilk

我们选择这里作为学习和分享技术知识的一个平台&#xff0c;希望大家共同进步&#xff01; 1 (function(){ 2 alert(Hello Jsilk); 3 })(); 转载于:https://www.cnblogs.com/jsilk/archive/2012/12/10/2811255.html

js 使用 Lawnchair 存储 json 对象到本地

项目中用到储存点击记录的功能。 Lawnchair是一个轻量级的移动应用程序数据持久化存储方案&#xff0c;同时也是客户端JSON文档存储方法&#xff0c;优点是短小&#xff0c;语法简洁&#xff0c;扩展性比较好。 现在做HTML5移动应用除了LocalStorage的兼容性比较好之外&#xf…

邓林权:组队学习的那些事

自我介绍 大家好&#xff0c;我是邓林权&#xff0c;职业是数据营销&#xff0c;工作是以数据为主&#xff0c;通过数据进行决策。平时喜欢研究数据&#xff0c;领略数据的魅力&#xff0c;很荣幸能够和大家分享我参加组队学习的收获和故事。 组队学习经历 今年4月开始参加组…

软件测试培训分享:软件测试初期怎么面试工作?

学会了软件测试技术&#xff0c;那么大家后面接下来的准备工作就是面试找工作了&#xff0c;对于新手来说&#xff0c;面试软件测试这个岗位也是要有一些技巧的&#xff0c;下面小编就为大家介绍一下软件测试新手怎么面试工作? 软件测试培训分享&#xff1a;软件测试新手怎么面…

MySQL的正则表达式

1. Mysql的正则表达式仅仅使SQL语言的一个子集&#xff0c;可以匹配基本的字符、字符串。 例如&#xff1a;select * from wp_posts where post_name REGEXP hello&#xff0c;可以检索出列post_name中所有包含hello的行 REGEXP .og .是正则表达式中里一个特殊的字符。它表示…

Datawhale组队学习周报(第020周)

文章目录已经结营的开源内容即将结营的开源内容正在进行的开源内容七月排期的开源内容每周号外Whalepaper 招新公告本周&#xff08;06月21日~06月27日&#xff09;&#xff0c;第 25 期组队学习一共有 3 门开源课程&#xff0c;共组建了 3 个学习群&#xff0c;参与的学习者有…

EffectKeyMap系列1(Ubuntu)

说在前面 相信大多数人都会有这样的体验。当双手在键盘上一直打字或者写代码的时候&#xff0c;一次鼠标操作会让你崩溃。尤其是频繁使用鼠标的时候&#xff0c;工作效率会大幅下降。所以为了提高工作效率&#xff0c;我希望尽量少的使用鼠标。 以下我会总结我使用较高的几款软…

Python培训教程:pycharm常用的快捷键合集

本期Python培训教程&#xff1a;pycharm常用的快捷键合集&#xff0c;希望能在后面的学习和工作中给大家带来一些帮助&#xff0c;首先我们来了解一下什么是PyCharm?PyCharm是一种Python IDE&#xff0c;它不仅具备了一般IDE的功能&#xff0c;还提供了很多高级功能&#xff0…

JavaScript正则表达式基础知识汇总

一、创建正则对象&#xff1a; 1、构造函数RegExp创建正则对象 1 var pattern new RegExp(s$); //pattern匹配以s结尾的字符串 2、使用正则直接量 1 var pattern /s$/; //建议这样写 二、正则表达式字符 1、反斜线\ 在正则表达式中表示转义序列 特殊符号&#xff1a; ^ $ . *…

数据结构(严蔚敏)

说起为什么重新拿起这本书&#xff0c;着实非常惭愧。是因为面试的时候&#xff0c;第一个面试官面试完项目之后。第二面试官说我们就当聊聊天&#xff0c;考考数据结构&#xff0c;算法就好了。结果以一个问题就把我难住了&#xff0c;这个问题是&#xff1a;哈希表是什么&…

组队学习:学习者参考手册

学习者参考手册 作为希望参与组队学习活动的学习者&#xff0c;一定想了解有关本次活动的各种环节。我就通过这份手册来给大家介绍一下。 本手册一共分为四个部分&#xff0c;分别是活动角色划分&#xff0c;活动流程介绍、打卡环节介绍、角色职责介绍。 1. 大航海模型 航路…

软件测试培训适合什么人学习?

软件测试在互联网行业一直有着非常可观的发展前景&#xff0c;想要学习软件测试技术的人也越来越多&#xff0c;但不是所有人都可以学&#xff0c;都能学会的&#xff0c;小编下面就为大家详细的介绍一下软件测试培训适合什么人学习? 软件测试培训适合什么人学习?主要有以下几…

巧用组策略关闭危险端口

最直接的办法&#xff0c;把系统不用的端口都关闭掉&#xff0c;然后重新启动&#xff0c;如果杀毒软件还提示有漏洞攻击&#xff0c;你来找我. 注&#xff1a;关闭的端口有&#xff0c;135&#xff0c;137&#xff0c;138&#xff0c;139&#xff0c;445&#xff0c;1025&…

谢文睿:西瓜书 + 南瓜书 吃瓜系列 8. 软间隔与支持向量回归

Datawhale南瓜书是经典机器学习教材《机器学习》&#xff08;西瓜书&#xff09;的公式推导解析指南&#xff0c;旨在让在学习西瓜书的过程中&#xff0c;再也没有难推的公式&#xff0c;学好机器学习。 航路开辟者&#xff1a;谢文睿、秦州开源内容&#xff1a;https://githu…

软件测试培训分享:如何划分bug的严重级别

软件测试工程师在工作中&#xff0c;最常见的就是遇见bug&#xff0c;那么所有的bug都是有轻重缓急的&#xff0c;如何划分bug的严重级别呢?本期软件测试培训分享教程就为大家做下详细的介绍。 软件测试培训分享&#xff1a;如何划分bug的严重级别?Bug的严重级别指的是软件缺…

理解 CSS 布局和块级格式上下文

本文的目的是介绍一些概念来帮你增强 CSS 码力。如标题所示这篇文章主要是讲块级格式上下文BFCBlock Formatting Context。你可能没听过这个术语但只要你曾经使用 过CSS 布局你就能明白它。理解 BFC 是什么、它如何工作、如何创建一个 BFC 是非常有用的这些能帮你更好的理解 CS…

Linux环境下用OpenJTAG实现Linux内核的源码级调试

1、通过U-boot将uzImage格式的内核加载到内存中&#xff08;可以从Flash中读取&#xff0c;也可以从U盘、SD卡读取&#xff0c;还可以通过网络&#xff09;&#xff1b; 2、登陆到OpenOCD上&#xff0c;在内核中__turn_mmu_on打上断点&#xff0c;跳过MMU&#xff08;Linux 的链…

如何在Windows中安装Python?

如何在Windows中安装Python&#xff1f; 1. Python的安装 官网下载&#xff1a;https://www.python.org/downloads/windows/ 点开上面的链接&#xff0c;会发现有很多版本。 首先看版本&#xff0c;64-bit是64位版本&#xff0c;32-bit是32位版本&#xff0c;你需要下载跟你…

Python培训教程分享:Python中选择结构是什么

越来越多的人开始报名学习Python技术&#xff0c;那么学习Python技术不是一两天就能学会的&#xff0c;本期小编为大家推荐的Python培训教程主要讲的是“Python中选择结构是什么”&#xff0c;下面来看看具体的内容&#xff0c;大家做好笔记哦。 Python培训教程分享&#xff1a…

UIWebView之获取所点位置图片URL

UIWebView有自己的UIResgure&#xff0c;如果我们手动加入自己的GestureRecognize将不能识别&#xff0c;如UILongPressGestureRecongnizer. 在浏览网页的时候&#xff0c;如果看到喜欢的图片&#xff0c;想把它保存下来如何办呢&#xff1f; 我们可以自己写一个程序来实现&…

【组队学习】【27期】青少年编程(Turtle)

青少年编程&#xff08;Turtle&#xff09; 论坛版块&#xff1a; http://datawhale.club/c/team-learning/34-category/34 开源内容&#xff1a; https://github.com/datawhalechina/team-learning-program/tree/master/Turtle 学习目标 针对未接触过python、或者刚接触…

linux下activemq安装与配置

一、下载&#xff1a;apache-activemq-5.14.0-bin.tar.gzhttp://activemq.apache.org/activemq-5140-release.html二、安装activemq1、gz文件拷贝到/usr/local/src目录2、解压启动tar -zxvf apache-activemq-5.14.0-bin.tar.gzcd apache-activemq-5.14.0cd bin./activemq start…

参加软件测试培训需要注意哪些

零基础同学想要学习软件测试&#xff0c;通过自学是比较难的&#xff0c;那么很多人都会考虑软件测试培训机构&#xff0c;那么参加软件测试培训需要注意哪些问题呢?来看看下面的详细介绍。 参加软件测试培训需要注意哪些? 一、科学选择培训机构 要想学到最真实有用的软件测试…

Ubuntu12.04LTS添加broadcom 802.11g无线网卡驱动

Description&#xff1a; windows下无线网驱动可用&#xff0c;切换到Ubuntu下&#xff0c;无线网驱动失效。Reason: boardcom在Ubuntu下没有安装默认的驱动&#xff0c;需要自己手动配置install。 Solution&#xff1a; 1&#xff09;有线连接网络&#xff0c;安装b43-fwcutte…

Android常用知识点回顾

开发过程中经常碰到一些问题或知识点&#xff0c;通过Baidu or Google 最终解决了问题。随后也对该知识点有了一定的掌握&#xff0c;可是过了一段时间再次碰到还是会忘记。所以该篇主要用来记录常见知识点。 山中何所有&#xff0c;岭山多白云。出自南北朝陶弘景&#xff0c;谨…