Aracılığıyla paylaş


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.

The iOS 6 logo

iOS 6 ve Xamarin.iOS 6 ile geliştiriciler artık i Telefon 5'i hedefleyen uygulamalar da dahil olmak üzere iOS uygulamaları oluşturma olanağına sahiptir. 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 geçtikçe önemli olacak birkaç değişikliğe ve i Telefon 5'in yeni çözünürlüğüne 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 ViewDidDisappearViewWillUnloadiçinde ViewWillDisappear gerçekleştirebilir.

i Telefon 5 Çözünürlük

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

Applications that targeted previous versions of iOS will appear letterboxed when run on an iPhone 5

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

This screenshot shows the application running after this image has been included

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:

Using this UINavigationBar subclass results in the image view being displayed as shown in this screenshot

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. i Telefon ve iPod Touch'ta varsayılan değer dışındaki PortraitUpsideDowntüm yönlendirmelerdir.