动态的iPhone应用图标?

4

日历应用可以做到这一点...如何根据iPod或iPod应用程序设置中存储的信息使应用程序图标更改?

编辑: 我今天意识到可以通过sdk访问捆绑包。(至少读取权限)如果我有一个图形API(例如OpenGL),然后我可能可以像那样修改图标。操作将是:

  • 从捆绑包中获取icon.png。
  • 修改它
  • 将其重新保存到捆绑包中。

这有意义吗?

4个回答

5

需要注意的是,苹果的日历应用程序实际上是硬编码到系统中以显示在图标上方的视图。将其放在第一页的左侧并拖动到SpotLight,您会注意到文本消失的方式不同。


有趣的观察。虽然很奇怪。 - Moshe
这是因为它是黑色文本视图放在白色背景上,所以它会褪成白色,但图标本身会褪成黑色,因为它变得不可见。要正确地做到这一点,他们就不能淡化日历文本。 - Grant Paul

3

很遗憾,你不能使用SDK(当然,苹果公司在日历应用程序中没有限制) - 你可以做徽章,但图像总是静态的。


好的。我相信这就是(除了其他原因之外)为什么苹果没有日历API的原因。谢谢。 - Moshe

2
作为对您编辑的回答:不,您不能更改包内的任何文件;您的应用程序被沙箱化,只能在其文档、缓存和临时目录中具有写访问权限。

如果 plist 引用了沙盒内部的文件,会怎么样? - Moshe
1
我听说过一些黑客技巧可以实现类似的效果……就是将文件作为软链接放在程序包内部,或者类似的操作。不过这已经是一段时间以前的事情了,现在很可能已经被修复了。 - Noah Witherspoon

1

在新的iOS 10.3更新(测试版)中是可能的,但您必须在info.plist文件中指定每个图标。

func setAlternateIconName(_ alternateIconName: String?, 
    completionHandler: ((Error?) -> Void)? = nil)

alternateIconName

的程序相关内容。

查阅了文档,但仍然不清楚如何实现它,即缺乏明确的用例? - Catarino
@Catarino https://www.hackingwithswift.com/example-code/uikit/how-to-change-your-app-icon-dynamically-with-setalternateiconname - Tom Kidd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接