Alternativní ikony aplikací v Xamarin.iOS
Tento článek popisuje použití alternativních ikon aplikací v Xamarin.iOS.
Apple přidal do iOS 10.3 několik vylepšení, která aplikaci umožňují spravovat její ikonu:
ApplicationIconBadgeNumber
- Získá nebo nastaví odznáček ikony aplikace ve Springboardu.SupportsAlternateIcons
– Pokudtrue
má aplikace alternativní sadu ikon.AlternateIconName
– Vrátí název alternativní ikony, která je aktuálně vybrána, nebonull
pokud používáte primární ikonu.SetAlternameIconName
– Pomocí této metody přepněte ikonu aplikace na danou alternativní ikonu.
Přidání alternativních ikon do projektu Xamarin.iOS
Aby mohla aplikace přepnout na alternativní ikonu, bude potřeba do projektu aplikace Xamarin.iOS zahrnout kolekci obrázků ikon. Tyto obrázky nelze do projektu přidat pomocí typické Assets.xcassets
metody, musí být přidány přímo do složky Resources .
Postupujte následovně:
Vyberte požadované obrázky ikon ve složce, vyberte všechny a přetáhněte je do složky Prostředky v Průzkumník řešení:
Po zobrazení výzvy vyberte Kopírovat, Použijte stejnou akci pro všechny vybrané soubory a klikněte na tlačítko OK :
Po dokončení by složka Resources měla vypadat takto:
Úprava souboru Info.plist
S požadovanými obrázky přidanými do složky Resources bude nutné do souboru Info.plist projektu přidat klíč CFBundleAlternateIcons. Tento klíč definuje název nové ikony a obrázky, které ji tvoří.
Postupujte následovně:
- V Průzkumník řešení poklikejte na soubor Info.plist a otevřete ho pro úpravy.
- Přepněte do zobrazení Zdroj .
- Přidejte klávesu s ikonami sady a ponechte typ nastavený na slovník.
CFBundleAlternateIcons
Přidejte klíč a nastavte typ na slovník.AppIcon2
Přidejte klíč a nastavte typ na slovník. Bude to název nové sady ikon alternativní aplikace.CFBundleIconFiles
Přidání klíče a nastavení typu na pole- Přidejte do
CFBundleIconFiles
pole nový řetězec pro každý soubor ikony, který vynechá příponu a@2x
přípony ,@3x
atd. (příklad100_icon
). Tento krok opakujte pro každý soubor, který tvoří alternativní sadu ikon. UIPrerenderedIcon
Přidejte klíč do slovníkuAppIcon2
, nastavte typ na Logolean a hodnotu na Ne.- Uložte změny souboru.
Výsledný soubor Info.plist by měl po dokončení vypadat takto:
Nebo se to líbí, pokud jste otevřeli v textovém editoru:
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>AppIcon2</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>100_icon</string>
<string>114_icon</string>
<string>120_icon</string>
<string>144_icon</string>
<string>152_icon</string>
<string>167_icon</string>
<string>180_icon</string>
<string>29_icon</string>
<string>40_icon</string>
<string>50_icon</string>
<string>512_icon</string>
<string>57_icon</string>
<string>58_icon</string>
<string>72_icon</string>
<string>76_icon</string>
<string>80_icon</string>
<string>87_icon</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
</dict>
Správa ikony aplikace
Díky obrázkům ikon, které jsou součástí projektu Xamarin.iOS a správně nakonfigurovaného souboru Info.plist , může vývojář použít jednu z mnoha nových funkcí přidaných do iOS 10.3 k řízení ikony aplikace.
Vlastnost SupportsAlternateIcons
UIApplication
třídy umožňuje vývojáři zjistit, jestli aplikace podporuje alternativní ikony. Příklad:
// Can the app select a different icon?
PrimaryIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
AlternateIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
ApplicationIconBadgeNumber
Vlastnost UIApplication
třídy umožňuje vývojáři získat nebo nastavit aktuální číslo odznáček ikony aplikace ve Springboardu. Výchozí hodnota je nula (0). Příklad:
// Set the badge number to 1
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 1;
AlternateIconName
Vlastnost UIApplication
třídy umožňuje vývojáři získat název aktuálně vybrané alternativní ikony aplikace nebo se vrátínull
, pokud aplikace používá primární ikonu. Příklad:
// Get the name of the currently selected alternate
// icon set
var name = UIApplication.SharedApplication.AlternateIconName;
if (name != null ) {
// Do something with the name
}
SetAlternameIconName
Vlastnost UIApplication
třídy umožňuje vývojáři změnit ikonu aplikace. Předejte název ikony, abyste vybrali nebo null
se vrátili k primární ikoně. Příklad:
partial void UsePrimaryIcon (Foundation.NSObject sender)
{
UIApplication.SharedApplication.SetAlternateIconName (null, (err) => {
Console.WriteLine ("Set Primary Icon: {0}", err);
});
}
partial void UseAlternateIcon (Foundation.NSObject sender)
{
UIApplication.SharedApplication.SetAlternateIconName ("AppIcon2", (err) => {
Console.WriteLine ("Set Alternate Icon: {0}", err);
});
}
Když se aplikace spustí a uživatel vybere alternativní ikonu, zobrazí se upozornění podobné následujícímu:
Pokud uživatel přepne zpět na primární ikonu, zobrazí se upozornění podobné následujícímu:
Shrnutí
Tento článek popisuje přidání alternativních ikon aplikací do projektu Xamarin.iOS a jejich použití uvnitř aplikace.