iOS 6’ya Giriş

iOS 6, Xamarin.iOS 6'nın C# geliştiricilerine getirdiği uygulama geliştirmeye yönelik çeşitli yeni teknolojiler içerir.

iOS 6 logosu

iOS 6 ve Xamarin.iOS 6 ile geliştiriciler artık iPhone 5'i hedefleyen uygulamalar da dahil olmak üzere iOS uygulamaları oluşturma konusunda çok sayıda özelliğe sahip. Bu belgede, kullanılabilir olan daha heyecan verici yeni özelliklerden bazıları ve her konu için makalelere bağlantılar listelenir. Buna ek olarak, geliştiriciler iOS 6'ya ve iPhone 5'in yeni çözünürlüğüne geçtikçe önemli olacak birkaç değişikliğe değinir.

Koleksiyon Görünümlerine Giriş

Koleksiyon Görünümleri, içeriğin rastgele düzenler kullanılarak görüntülenmesine izin verir. Bunlar, özel düzenleri de desteklerken kutudan kolayca kılavuz benzeri düzenler oluşturmaya olanak sağlar. Daha fazla bilgi için bkz . Koleksiyon Görünümlerine Giriş kılavuzu.

PassKit'e giriş

PassKit çerçevesi, uygulamaların Passbook uygulamasında yönetilen dijital geçişlerle etkileşim kurmasına olanak tanır. Daha fazla bilgi için bkz. Pass Kit'e Giriş kılavuzu.

EventKit'e giriş

EventKit çerçevesi, Takvim Veritabanı'nın depolayan Takvimler, Takvim Olayları ve Anımsatıcılar verilerine erişmek için bir yol sağlar. iOS 4'ten bu yana takvimlere ve takvim etkinliklerine erişim sağlanmıştır, ancak iOS 6 artık anımsatıcı verilerine erişimi kullanıma sunar. Daha fazla bilgi için Bkz . EventKit'e giriş kılavuzu.

Sosyal Çerçeveye Giriş

Social Framework, Twitter ve Facebook gibi sosyal ağlarla etkileşime yönelik birleşik bir API'nin yanı sıra Çin'deki kullanıcılar için SinaWeibo sağlar. Daha fazla bilgi için bkz . Sosyal Çerçeveye Giriş kılavuzu.

StoreKit Üzerindeki Değişiklikler

Apple, Store Kit'te iki yeni özellik ekledi: iTunes veya App Store içeriğini uygulamanızın içinden satın alma ve indirme ve uygulama içi satın almalar için içerik dosyalarınızı barındırma! Daha fazla bilgi için bkz . Mağaza Seti Değişiklikleri kılavuzu.

Diğer Değişiklikler

ViewWillUnload ve ViewDidUnload Kullanım Dışı

ViewWillUnload ve ViewDidUnload yöntemleri UIViewController artık iOS 6'da çağrılmaz. iOS'un önceki sürümlerinde, bu yöntemler uygulamalar tarafından bir görünüm yüklenmeden önce durumu kaydetmek için kullanılmış ve sırasıyla temizleme kodu kullanılmış olabilir.

Örneğin, Mac için Visual Studio aşağıda gösterilen adlı ReleaseDesignerOutletsbir yöntem oluşturur ve bu yöntem ' den ViewDidUnloadçağrılır:

void ReleaseDesignerOutlets ()
{
    if (myOutlet != null) {
        myOutlet.Dispose ();
        myOutlet = null;
    }
}

Ancak, iOS 6'da artık çağrısı ReleaseDesignerOutletsyapmak gerekmez.

Temizleme kodu için iOS 6 uygulamaları kullanmalıdır DidReceiveMemoryWarning. Ancak, çağıran Dispose kod, aşağıda gösterildiği gibi yalnızca yoğun bellek kullanan nesneler için dikkatli bir şekilde kullanılmalıdır:

if (myImageView != null){
    if (myImageView.Superview == null){
        myImageView.Dispose();
        myImageView = null;
    }
}

Yine, yukarıdaki gibi çağrıya Dispose nadiren ihtiyaç duyulmalıdır. Genel olarak, çoğu uygulamanın yapması gereken olay işleyicilerini kaldırmaktır.

Kaydetme durumu söz konusu olduğunda, uygulamalar bunu yerine ve ViewDidDisappear ViewWillUnloadiçinde ViewWillDisappear gerçekleştirebilir.

iPhone 5 Çözünürlük

iPhone 5 cihazları 640x1136 çözünürlüğe sahiptir. iOS'un önceki sürümlerini hedefleyen uygulamalar, aşağıda gösterildiği gibi iPhone 5'te çalıştırıldığında letterbox ile gösterilir:

iOS'un önceki sürümlerini hedefleyen uygulamalar, iPhone 5'te çalıştırıldığında letterbox'lı olarak görünür

Uygulamanın iPhone 5'te tam ekran olarak görünmesi için, 640x1136 çözünürlüğüne sahip adlı Default-568h@2x.png bir resim eklemeniz yeterlidir. Aşağıdaki ekran görüntüsünde, bu görüntü eklendikten sonra çalışan uygulama gösterilmektedir:

Bu ekran görüntüsü, bu görüntü eklendikten sonra çalışan uygulamayı gösterir

UINavigationBar Alt Sınıfı oluşturma

iOS 6'da UINavigationBar alt sınıflandırılabilir. Bu, görünümünün ve görünümünün UINavigationBarek denetimini sağlar. Örneğin, uygulamalar alt görünüm eklemek, bu görünümlere animasyon eklemek ve sınırlarını UINavigationBardeğiştirmek için alt sınıf oluşturabilir.

Aşağıdaki kod, öğesini ekleyen UIImageViewbir alt sınıf UINavigationBar örneği gösterir:

public class CustomNavBar : UINavigationBar
{
​    UIImageView iv;
    public CustomNavBar (IntPtr h) : base(h)
​    {
​​        iv = new UIImageView (UIImage.FromFile ("monkey.png"));
​​        iv.Frame = new CGRect (75, 0, 30, 39);
​    }
    public override void Draw (RectangleF rect)
​    {
​​        base.Draw (rect);
        TintColor = UIColor.Purple;
​​        AddSubview (iv);
​    }
}

öğesine alt sınıf eklemek UINavigationBar içinUINavigationController, aşağıda gösterildiği gibi ve UIToolbartürünü UINavigationBar alan oluşturucuyu kullanınUINavigationController:

navController = new UINavigationController (typeof(CustomNavBar), typeof(UIToolbar));

Bu UINavigationBar alt sınıfın kullanılması, aşağıdaki ekran görüntüsünde gösterildiği gibi görüntü görünümünün görüntülenmesine neden olur:

Bu UINavigationBar alt sınıfının kullanılması, görüntü görünümünün bu ekran görüntüsünde gösterildiği gibi görüntülenmesine neden olur

Arabirim Yönlendirmesi

iOS 6 uygulamalarından önce, belirli bir denetleyicinin desteklediği yönlendirmeler için true döndürebilir ShouldAutorotateToInterfaceOrientation. Örneğin, aşağıdaki kod yalnızca dikey ayarı desteklemek için kullanılır:

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
    {
        return (toInterfaceOrientation == UIInterfaceOrientation.Portrait);
    }

iOS 6'da ShouldAutorotateToInterfaceOrientation kullanım dışıdır. Bunun yerine uygulamalar aşağıda gösterildiği gibi kök görünüm denetleyicisinde geçersiz kılabilir GetSupportedInterfaceOrientations :

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
    {
        return UIInterfaceOrientationMask.Portrait;
    }

iPad'de bu, uygulanmazsa GetSupportedInterfaceOrientation varsayılan olarak dört yönlendirmenin tümüne ayarlanır. iPhone ve iPod Touch'ta varsayılan olarak dışındaki PortraitUpsideDowntüm yönlendirmeler bulunur.