Альтернативный значок в iOS 10.3

У меня есть информация о том, как настраивать альтернативные значки в iOS 10.3, добавляя ключ в Info.plist. Однако я не уверен в том, какие размеры необходимы для каждой альтернативы. Я использую папки с активами прямо сейчас и должен разместить около 12 значков различного размера для прожектора, разных размеров iphone и ipad и т.д. Какое правило для альтернативных?

Это не дубликат, это возможно. Он спрашивает, нужно ли включать каждый отдельный размер для альтернативных значков.

Ответ 1

Поскольку самая большая проблема заключается в том, как настроить источник изображения значка и info.plist, здесь - это образец, чтобы рассказать вам, как установить альтернативный значки в iOS 10.3, реализованные в Swift 3.

Assets.xcassetsinfo.plist

  • Если ваше приложение не поддерживает iPad, источником изображения значка может быть 60pt @2x и 60pt @3x (120x120 180x180), а 20pt и 29pt и 40pt могут быть сгенерированы из изображения 60pt. Итак, ваш альтернативный источник изображения значков должен также быть 60pt @2x и 60pt @3x, если это приложение для iPhone. И это должно быть 83.5pt, если ваше приложение поддерживает iPad Pro.

  • Как и то, что вы видели на картинке, альтернативное изображение значка должно быть добавлено в проект как файл png (изображение BlackBgColor в моем примере), но не добавлено в Assets.xcassets.

  • Конфигурация альтернативных значков в файле info.plist довольно сложна, поэтому, если это ваш первый раз, я предлагаю вам скопировать мой код в plist. И обратите внимание на то, что мое альтернативное имя значка (blackBgColor) использовалось TWICE в 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 icon")
        }else {
            print("you cannot change this app 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 name is \(name)")
        }else {
            // CHANGE TO ALTERNATE ICON
            UIApplication.shared.setAlternateIconName("blackBgColor") { (err:Error?) in
                print("set icon error:\(String(describing: err))")
            }
        }
    }

}

Ответ 2

Чтобы изменить значок, вам нужно использовать set​Alternate​Icon​Name(_:​completion​Handler:​)

Вам нужно поместить CFBundleAlternateIcons в Info.plist. Размеры иконок Alternate совпадают с размерами пиктограмм указанными здесь.

Вы можете прочитать полные документы в Содержание записи словаря CFBundleAlternateIcons

введите описание изображения здесь


Изменить: Этот отрывок из приведенных выше документов icon sizes listed here

Обеспечить визуально согласованные альтернативные значки всех необходимых размеров. Как и ваш основной значок приложения, каждый альтернативный значок приложения поставляется как коллекция связанных изображений, которые различаются по размеру. Когда пользователь выбирает альтернативный значок, соответствующие размеры этого значка заменяют основной значок приложения на главном экране, в центре внимания и в других местах системы. Чтобы гарантировать постоянное использование альтернативных значков в системе - пользователь не должен видеть одну версию вашего значка на главном экране и, например, совершенно другую версию в настройках, - предоставить им те же размеры, что и для основного значка приложения (за исключением большого значка магазина приложений). См. Размеры значков приложений