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 5.0'ı hedef alan uygulamalar da dahil olmak üzere iOS uygulamaları oluşturmak için iPhone sahiptir. Bu belgede, kullanılabilir olan daha heyecan verici yeni özelliklerden bazıları ve her konu başlığı için makalelerin bağlantıları listelenmiş. Buna ek olarak, geliştiriciler iOS 6'ya geçse de önemli olacak birkaç değişiklikle ve 5. iPhone eder.

Koleksiyon Görünümlerine Giriş

Koleksiyon Görünümleri, içeriğin rastgele düzenler kullanılarak görüntülenebilir. Bunlar, özel düzenleri de desteklerken kılavuza benzer düzenlerin kolayca oluşturulmasına olanak sağlar. Daha fazla bilgi için koleksiyon görünümlerine giriş kılavuzuna bakın.

PassKit'e giriş

PassKit çerçevesi, uygulamaların Passbook uygulamasında yönetilen dijital geçişlerle etkileşim kurmalarını sağlar. Daha fazla bilgi için bkz. Pass Kit'e Giriş kılavuzu.

EventKit'e giriş

EventKit çerçevesi Takvim Veritabanı'nın depoları olan Takvimler, Takvim Olayları ve Anımsatıcılar verilerine erişmek için bir yol sağlar. Takvimlere ve takvim olaylarına erişim iOS 4'ten bu yana kullanılabilir, ancak iOS 6 artık anımsatıcı verilerine erişimi gösterir. Daha fazla bilgi içinEventKit'e giriş kılavuzuna bakın.

Sosyal Çerçeve'ye Giriş

Sosyal Çerçeve, Twitter ve Facebook dahil olmak üzere sosyal ağlarla etkileşim kurmak için birleşik bir API'nin yanı sıra Çin'deki kullanıcılar için DeaWeibo'yu da 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 tanıttı: iTunes satın alma ve indirme App Store uygulamanın içinde içerik indirme ve uygulama içinde satın almalar için içerik dosyalarınızı barındırma! Daha fazla bilgi için mağaza setini değişiklikler kılavuzuna bakın.

Diğer Değişiklikler

ViewWillUnload ve ViewDidUnload Kullanım Dışı

ve ViewWillUnloadViewDidUnload yöntemleri artık UIViewController iOS 6'da çağrılmaz. iOS'un önceki sürümlerinde, bu yöntemler uygulamalar tarafından görünüm yüklenmeden önce durumu kaydetmeye ve kodu temizlemeye göre kullanılmış olabilir.

Örneğin, Mac için Visual Studio aşağıda gösterilen adlı bir ReleaseDesignerOutlets yöntem oluşturabilirsiniz. Bu yöntem daha sonra yönteminden çağrılır: ViewDidUnload

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

Ancak iOS 6'da artık çağrısı yapmak gerekli ReleaseDesignerOutlets değildir.

Temizleme kodu için iOS 6 uygulamalarının kullanması DidReceiveMemoryWarning gerekir. Ancak, aşağıda gösterildiği Dispose gibi, çağıran kod fazla kullanılmalı ve yalnızca yoğun bellek kullanımına sahip nesneler için kullanılmalıdır:

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

Yine, yukarıda Dispose olduğu gibi çağrısı nadiren gerekli olur. Genel olarak çoğu uygulamanın yapmaları gereken şey olay işleyicilerini kaldırmaktır.

Durum kaydetme durumunda, uygulamalar bunu yerine ve içinde ViewWillDisappearViewDidDisappearViewWillUnload gerçekleştirin.

iPhone 5 Çözümleme

iPhone 5 cihaz 640x1136 çözünürlüğüne sahip. iOS'un önceki sürümlerini hedef alan uygulamalar, aşağıda gösterildiği gibi iPhone 5'te çalıştırıldıklarında letterboxed olarak görünür:

Önceki iOS sürümlerini hedef alan uygulamalar, 5. bir sürümde çalıştırıldıklarında iPhone görünür

Uygulamanın 5. ekranda tam ekran iPhone için 640x1136 çözünürlüğüne sahip adlı bir Default-568h@2x.png görüntü eklemeniz gerekir. Aşağıdaki ekran görüntüsü, bu görüntü dahil edildikten sonra çalışan uygulamayı gösterir:

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

UiNavigationBar Alt Sınıfı

iOS UINavigationBar 6'da alt sınıf olabilir. Bu, için ek görünüm ve görünüm denetimi UINavigationBar sağlar. Örneğin, uygulamalar alt görünüm eklemek, bu görünümlere animasyon eklemek ve Sınırları değiştirmek için alt sınıfa sahip UINavigationBar olabilir.

Aşağıdaki kod, bir ekleyen bir alt sınıf UINavigationBar örneği UIImageView 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);
​    }
}

bir alt sınıfa eklemek için, aşağıda gösterildiği gibi ve türünü alan UINavigationBarUINavigationController oluşturucu UINavigationControllerUINavigationBarUIToolbar kullanın:

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

Bu alt UINavigationBar sınıfı kullanmak, 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üleniyor olmasıyla sonuç verir:

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

Arabirim Yönü

iOS 6 uygulamalarından önce, belirli bir denetleyicinin desteklenen yönlendirmeleri için true döndürerek ShouldAutorotateToInterfaceOrientation geçersiz kıldı. Örneğin, aşağıdaki kod yalnızca dikeyi desteklemek için kullanılabilir:

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

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

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

Bu iPad, uygulanmazsa varsayılan olarak dört GetSupportedInterfaceOrientation yönü de kullanır. IPhone ve iPod Touch'ta varsayılan olarak hariç tüm yönlendirmeler PortraitUpsideDown kullanılır.