2017-03-29 5 views
12

J'ai les informations sur la façon de configurer d'autres icônes dans iOS 10.3 en ajoutant la clé dans Info.plist. Cependant, ce dont je ne suis pas sûr, c'est quelles tailles sont nécessaires pour chaque alternative. J'utilise des dossiers d'actifs en ce moment, et je dois mettre environ 12 icônes de tailles différentes pour le projecteur, différentes tailles d'iphone et d'ipad, etc. Quelle est la règle sur les autres?Autre icône dans iOS 10.3

Ce n'est pas une copie de c'est possible. Il demande si vous devez inclure toutes les tailles unique pour les icônes alternatives

+0

double possible de [Est-ce possible d'appliquer l'icône alternative à l'application iOS?] (Http://stackoverflow.com/questions/41950994/is-this-possible-to-apply-the-alternative -icon-to-the-ios-application) – KlimczakM

Répondre

12

Depuis le plus gros problème est de savoir comment configurer la source et info.plist d'image d'icône, here est un exemple pour vous dire comment définir des icônes alternatives dans iOS 10.3, mis en œuvre à Swift 3.

Assets.xcassets info.plist

  1. Si votre application ne prend pas en charge l'iPad, la source d'image d'icône peut être 60pt @ 2x et 60pt @ 3x (120x120 180x180), et la 29pt 20pt et 40pt tout peut être généré à partir du 60pt Ima ge. Donc, votre source d'image d'icône alternative devrait également être 60pt @ 2x et 60pt @ 3x, si c'est une application iPhone seulement. Et il devrait être 83.5pt, si votre application prend en charge iPad Pro. Comme ce que vous avez vu dans l'image, l'image de l'icône secondaire doit être ajoutée au projet en tant que fichier png (l'image blackBgColor dans mon exemple), mais pas ajouté à Assets.xcassets. La configuration des icônes alternatives dans info.plist est assez compliquée, donc si c'est la première fois que vous faites cela, je vous suggère de copier mon code dans plist. Et, notez le nom de mon autre icône (blackBgColor) a été utilisé deux fois dans le plister, si vous allez changer le nom de l'icône en fonction de ma version, assurez-vous que vous avez changé le nom dans les deux endroits.

    <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> 
    

Maintenant, le code dans ViewController sera simple.

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))") 
      } 
     } 
    } 

} 
+0

Comment pour les icônes de l'iPad? – khunshan

+0

@khunshan https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/TP40009249-SW14 –

+2

@khunshan pour iPad, la clé "CFBundleIcons" devrait être "CFBundleIcons ~ ipad" –

2

Pour changer l'icône que vous devez utiliser set​Alternate​Icon​Name(_:​completion​Handler:​)

Vous devez mettre le CFBundleAlternateIcons en Info.plist. Les tailles des icônes de remplacement sont identiques à celles du icon sizes listed here principal.

Vous pouvez lire docs complet dans Contents of the CFBundleAlternateIcons Dictionary Entry

enter image description here


Edit: Cet extrait est tiré de la documentation ci-dessus icon sizes listed here

Fournir des icônes alternatives visuellement cohérentes dans toutes les mesures nécessaires tailles. Comme l'icône de votre application principale, chaque icône de l'application alternative est livrée sous la forme d'une collection d'images associées dont la taille varie. Lorsque l'utilisateur choisit une autre icône, les tailles appropriées de cette icône remplacent l'icône de l'application principale sur l'écran d'accueil, dans Spotlight et ailleurs dans le système. Pour que les autres icônes apparaissent systématiquement dans le système (l'utilisateur ne doit pas voir une version de votre icône sur l'écran d'accueil et une version complètement différente dans Paramètres, par exemple), fournissez-les dans la même taille que l'icône de votre application principale. (à l'exception de la grande icône App Store). Voir App Icon Sizes

+0

Ok, encore une fois ... est-ce juste les principales tailles d'icônes de l'application ou aussi pour les tailles de spots, etc.? 13 images différentes pour chaque icône supplémentaire semble que la taille de l'application pourrait se lever très rapidement – user717452