【问题标题】:Dynamic iPhone App icons?动态 iPhone 应用程序图标?
【发布时间】:2011-01-26 04:22:21
【问题描述】:

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

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

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

这有意义吗?

【问题讨论】:

    标签: iphone cocoa-touch ipod-touch


    【解决方案1】:

    请注意,Apple 的日历应用程序实际上已硬编码到系统中,以显示图标上的视图。把它放在第一页的左边,拖到SpotLight,你会发现文字淡出的效果不同。

    【讨论】:

    • 有趣的观察。不过很奇怪。
    • 这是因为它是一个白色背景上的黑色文本视图,它会淡化为白色,但图标本身会淡化为黑色,因为它变得不可见。要正确执行此操作,他们必须不淡化日历文本。
    【解决方案2】:

    很遗憾,您不能使用 SDK(当然 Apple 不限于使用日历应用程序)——您可以制作徽章,但图像始终是静态的。

    【讨论】:

    • 好的。这就是为什么(除其他原因外)Apple 不存在日历 API 的原因。谢谢。
    【解决方案3】:

    回答您的编辑:不,您不能更改捆绑包中的任何文件;您的应用程序被沙盒化,仅在其文档、缓存和临时目录中具有写入权限。

    【讨论】:

    • 如果 plist 引用了沙箱中的文件怎么办?
    • 我听说过一些 hack 导致了类似的事情发生......文件是包内的符号链接,或者类似的东西。不过那是不久前的事了——现在很有可能已经修好了。
    【解决方案4】:

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

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

    alternateIconName

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    相关资源
    最近更新 更多