swift iOS 10.3中的备用图标

lsmepo6l  于 2023-03-07  发布在  Swift
关注(0)|答案(2)|浏览(159)

我有关于如何在iOS 10.3中设置备用图标的信息,在Info.plist中添加了密钥。但是,我不确定每个备用图标需要哪些大小。我现在使用资产文件夹,必须为聚光灯、不同的iPhone和iPad大小等放置大约12个不同大小的图标。备用图标的规则是什么?

ybzsozfc

ybzsozfc1#

由于最大的问题是如何配置图标图像源和info.plist,因此here是一个示例,告诉您如何在iOS 10.3中设置替代图标,在Swift 3中实现。

1.如果应用程序不支持iPad,则图标图像源可以是60pt@2x和60pt@3x(120x120 180x180),20pt、29pt和40pt都可以从60pt图像生成。因此,如果是iPhone专用应用程序,您的备用图标图像源也应该是60pt@2x和60pt@3x。并且应该是83.5pt,如果您的应用支持iPad Pro。
1.就像您在图片中看到的那样,替代图标图像应该作为png文件添加到项目中(我的示例中的blackBgColor图像),而不是添加到Assets.xcassets中。
1.在info.plist中配置替代图标有点复杂,所以如果这是你第一次这样做,我建议你复制我在plist中的代码。而且,注意我的替代图标的名称(blackBgColor)在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))")
            }
        }
    }

}
6l7fqoea

6l7fqoea2#

要更改图标,您需要使用set​Alternate​Icon​Name(_:​completion​Handler:​)
您需要将CFBundleAlternateIcons放在Info.plist中。备用图标大小与主icon sizes listed here相同。
您可以在CFBundleAlternateIcons字典条目的内容中阅读完整文档

**编辑:**此摘录来自上述文档icon sizes listed here
**提供所有必要大小的视觉一致的备用图标。**与主应用程序图标一样,每个备用应用程序图标都以大小不同的相关图像集合的形式提供。当用户选择备用图标时,该图标的适当大小将替换主屏幕上的主应用程序图标。为确保备用图标在整个系统中显示一致-用户不应在主屏幕上看到一个版本的图标,而在“设置”中看到完全不同的版本,例如,将它们的大小设置为与主应用程序图标相同(应用程序商店的大图标除外)。请参阅App Icon Sizes

相关问题