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



