Aracılığıyla paylaş


Xamarin.iOS'ta Alternatif Uygulama Simgeleri

Bu makale, Xamarin.iOS'ta alternatif uygulama simgelerini kullanmayı kapsar.

Apple, iOS 10.3'e bir uygulamanın simgesini yönetmesine olanak sağlayan çeşitli geliştirmeler ekledi:

  • ApplicationIconBadgeNumber - Springboard'daki uygulama simgesinin rozetini alır veya ayarlar.
  • SupportsAlternateIcons - Uygulamanın alternatif bir simge kümesi varsa true .
  • AlternateIconName - Seçili durumdaki alternatif simgenin adını veya null birincil simgeyi kullanıyorsanız döndürür.
  • SetAlternameIconName - Uygulamanın simgesini verilen alternatif simgeye değiştirmek için bu yöntemi kullanın.

Bir uygulama simgesini değiştirdiğinde örnek uyarı

Xamarin.iOS Projesine Alternatif Simgeler Ekleme

Bir uygulamanın alternatif bir simgeye geçmesine izin vermek için Xamarin.iOS uygulama projesine bir simge görüntüsü koleksiyonu eklenmesi gerekir. Bu görüntüler tipik Assets.xcassets yöntem kullanılarak projeye eklenemez, kaynaklar klasörüne doğrudan eklenmelidir.

Aşağıdakileri yapın:

  1. Bir klasördeki gerekli simge görüntülerini seçin, tümünü seçin ve bunları Çözüm Gezgini Kaynaklarklasörüne sürükleyin:

    Bir klasörden simge görüntülerini seçme

  2. İstendiğinde Kopyala'yı seçin, Seçili tüm dosyalar için aynı eylemi kullanın ve Tamam düğmesine tıklayın:

    Klasöre Dosya Ekle iletişim kutusu

  3. Tamamlandığında Kaynaklar klasörü aşağıdaki gibi görünmelidir:

    Kaynaklar klasörü şöyle görünmelidir

Info.plist Dosyasını Değiştirme

Kaynaklar klasörüne gerekli görüntüler eklendiğinde CFBundleAlternateIconsanahtarının projenin Info.plist dosyasına eklenmesi gerekir. Bu anahtar, yeni simgenin adını ve onu oluşturan görüntüleri tanımlar.

Aşağıdakileri yapın:

  1. Çözüm Gezgini Info.plist dosyasına çift tıklayarak dosyayı düzenlemek üzere açın.
  2. Kaynak görünümüne geçin.
  3. Paket simgeleri anahtarı ekleyin ve Tür değerini Sözlük olarak bırakın.
  4. Bir CFBundleAlternateIcons anahtar ekleyin ve Tür değerini Sözlük olarak ayarlayın.
  5. Bir AppIcon2 anahtar ekleyin ve Tür değerini Sözlük olarak ayarlayın. Bu, yeni alternatif uygulama simge kümesinin adı olacaktır.
  6. Bir CFBundleIconFiles anahtar ekleyin ve Tür'leriDizi olarak ayarlayın
  7. Uzantıyı CFBundleIconFiles ve @2x, @3xvb. soneklerini (örnek 100_icon) dışarıda bırakan her simge dosyası için diziye yeni bir dize ekleyin. Alternatif simge kümesini oluşturan her dosya için bu adımı yineleyin.
  8. Sözlüğe bir UIPrerenderedIcon anahtar ekleyin, Türdeğerini Boole, değeri hayır olarak ayarlayın.AppIcon2
  9. Dosyadaki değişiklikleri kaydedin.

Sonuçta elde edilen Info.plist dosyası tamamlandığında aşağıdaki gibi görünmelidir:

Tamamlanan Info.plist dosyası

Alternatif olarak, bir metin düzenleyicisinde açılırsa şöyle de olur:

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

Uygulamanın Simgesini Yönetme

Xamarin.iOS projesine eklenen simge görüntüleri ve Info.plist dosyası doğru yapılandırıldığında, geliştirici uygulamanın simgesini denetlemek için iOS 10.3'e eklenen birçok yeni özelliklerden birini kullanabilir.

SupportsAlternateIcons sınıfının özelliğiUIApplication, geliştiricinin bir uygulamanın alternatif simgeleri desteklenip desteklemediğini görmesini sağlar. Örneğin:

// Can the app select a different icon?
PrimaryIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
AlternateIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;

ApplicationIconBadgeNumber sınıfının özelliğiUIApplication, geliştiricinin Springboard'da uygulama simgesinin geçerli rozet numarasını almasına veya ayarlamasına olanak tanır. Varsayılan değer sıfırdır (0). Örneğin:

// Set the badge number to 1
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 1;

AlternateIconName sınıfının özelliğiUIApplication, geliştiricinin seçili durumdaki alternatif uygulama simgesinin adını almasına izin verir veya uygulama Birincil Simge kullanıyorsa döndürürnull. Örneğin:

// Get the name of the currently selected alternate
// icon set
var name = UIApplication.SharedApplication.AlternateIconName;

if (name != null ) {
    // Do something with the name
}

SetAlternameIconName sınıfının özelliği, geliştiricinin UIApplication uygulama simgesini değiştirmesine olanak tanır. Seçmek veya null birincil simgeye dönmek için simgenin adını geçirin. Örneğin:

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

Uygulama çalıştırıldığında ve kullanıcı alternatif bir simge seçtiğinde, aşağıdakine benzer bir uyarı görüntülenir:

Bir uygulama simgesini değiştirdiğinde örnek uyarı

Kullanıcı birincil simgeye geri dönerse, aşağıdakine benzer bir uyarı görüntülenir:

Bir uygulama birincil simgeye değiştiğinde örnek uyarı

Özet

Bu makalede, Xamarin.iOS projesine alternatif uygulama simgeleri ekleme ve bunları uygulamanın içinde kullanma konusu ele alınmıştır.