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 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ı ReleaseDesignerOutlets
bir 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ı ReleaseDesignerOutlets
yapmak 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
ViewWillUnload
iç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:
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:
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 UINavigationBar
ek denetimini sağlar. Örneğin, uygulamalar alt görünüm eklemek, bu görünümlere animasyon eklemek ve sınırlarını UINavigationBar
değiştirmek için alt sınıf oluşturabilir.
Aşağıdaki kod, öğesini ekleyen UIImageView
bir 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 UIToolbar
tü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:
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 PortraitUpsideDown
tüm yönlendirmeler bulunur.