iOS 10.3 中的替代图标

2024-01-08

我有关于如何在 iOS 10.3 中设置备用图标的信息,在 Info.plist 中添加密钥。然而,我不确定每个替代方案需要哪些尺寸。我现在使用资源文件夹,并且必须放入大约 12 个不同大小的图标用于聚光灯、不同的 iphone 和 ipad 大小等。备用图标的规则是什么?


由于最大的问题是如何配置图标图像源和info.plist,here https://github.com/OpenMarshall/AlternateIconsSample是一个示例,告诉您如何在 iOS 10.3 中设置备用图标,在 Swift 3 中实现。

  1. 如果您的应用程序不支持iPad,则图标图像源可以是60pt@2x和60pt@3x(120x120 180x180),并且20pt、29pt和40pt都可以从60pt图像生成。所以,您的备用图标图像源也应该是 60pt@2x 和 60pt@3x,如果它是仅限 iPhone 的应用程序。如果您的应用程序支持 iPad Pro,则它应该是 83.5pt。

  2. 就像您在图片中看到的那样,备用图标图像应该是作为 png 文件添加到项目中(我的示例中的 blackBgColor 图像),但未添加到 Assets.xcassets 中。

  3. info.plist 中备用图标的配置有点复杂,所以如果这是您第一次这样做,我建议您将我的代码复制到 plist 中。和,请注意我的备用图标名称(黑色 Bg 颜色)已在 plist 中使用了两次,如果您要根据我的版本更改图标的名称,请确保您在两个地方都更改了名称。

    <key>CFBundleIcons</key>
    <dict>
        <key>CFBundleAlternateIcons</key>
        <dict>
            <key>blackBgColor</key>
            <dict>
                <key>CFBundleIconFiles</key>
                <array>
                    <string>blackBgColor</string>
                </array>
                <key>UIPrerenderedIcon</key>
                <false/>
            </dict>
        </dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>AppIcon60x60</string>
            </array>
        </dict>
    </dict>
    

现在,ViewController 中的代码将变得简单。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func changeAppIcon(_ sender: Any) {

        if UIApplication.shared.supportsAlternateIcons {
            print("you can change this app's icon")
        }else {
            print("you cannot change this app's icon")
            return
        }

        if let name = UIApplication.shared.alternateIconName {
            // CHANGE TO PRIMARY ICON
            UIApplication.shared.setAlternateIconName(nil) { (err:Error?) in
                print("set icon error:\(String(describing: err))")
            }
            print("the alternate icon's name is \(name)")
        }else {
            // CHANGE TO ALTERNATE ICON
            UIApplication.shared.setAlternateIconName("blackBgColor") { (err:Error?) in
                print("set icon error:\(String(describing: err))")
            }
        }
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 10.3 中的替代图标 的相关文章

随机推荐