Aracılığıyla paylaş


Ek iOS 9 Çerçeve Değişiklikleri

Bu makale, iOS 9 için mevcut çerçevelerde yapılan ek, küçük değişiklikleri veya geliştirmeleri kapsar.

iOS 9 Logosu

iOS'ta yapılan önemli değişikliklere ek olarak, Apple iOS 9'daki mevcut çerçevelerde değişiklikler ve iyileştirmeler yaptı.

AVFoundation Framework Eklemeleri

AVFoundation çerçevesinde, AVSpeechSynthesisVoice sınıfı artık dile ek olarak tanımlayıcıya göre bir ses belirtmenize olanak tanır.

Örneğin, aşağıdaki kod kullanılabilir tüm seslerin listesini alır:

var voices = AVSpeechSynthesisVoice.GetSpeechVoices ();

Ardından, listedeki seslerden birini AVSpeachUtterance sınıfının bir örneğinin özelliği olarak Voice ayarlayarak kullanabilirsiniz.

AVQueuePlayer sınıfı artık kuyruktaki İnternet akışı ve dosya tabanlı medyanın bir karışımını destekliyor. Önceki sürümler yalnızca aynı türdeki medyayı kuyruğa alabilirdi.

Daha fazla bilgi için bkz. Apple'ın AVSpeechSynthesisVoice Başvurusu.

AVKit Framework Eklemeleri

Yeni Resim İçinde Resim (PIP) özelliğiyle çalışmak için AVKit çerçevesi yeni AVPictureInPictureController ve AVPlayerViewController sınıflarını içerir:

  • AVPictureInPictureController - Bu sınıf, bir iOS 9 uygulamasının iPad'deki kayan, yeniden boyutlandırılabilir PIP penceresinde videonun kayıttan yürütülmesini başlatan kullanıcıya yanıt vermesini sağlar.
  • AVPlayerViewController - iPad'de AVPlayer kayan, yeniden boyutlandırılabilir pip penceresinde video sunmak için kullanılan denetleyiciyi yönetir.

Daha fazla bilgi için lütfen iPad için Multitasking belgelerimize ve Apple'ın AVPictureInPictureController Başvurusu ve AVPlayerViewController Başvurusu'ne bakın.

CloudKit Web Services ile tanışın

CloudKit çerçevesi, iCloud'a erişen uygulamaların geliştirilmesini kolaylaştırır. Bu, uygulama verilerinin ve varlık haklarının alınmasının yanı sıra uygulama bilgilerini güvenli bir şekilde depolamayı içerir. Bu kit, kişisel bilgileri paylaşmadan iCloud kimlikleriyle uygulamalara erişime izin vererek kullanıcılara bir anonimlik katmanı sağlar.

Yeni CloudKit Web Hizmetleri çerçevesi, Xamarin.iOS uygulamanızla aynı CloudKit tabanlı verilere ve içeriğe erişim sağlamak için web sitenize dahil edilebilen bir JavaScript kitaplığı (CloudKit JS) sağlar.

Önemli

CloudKit JS kullanarak bir CloudKit veritabanındaki içeriğe erişebilmeniz, içeriği sunabilmeniz veya güncelleştirebilmeniz için önce bu veritabanının şemasını tanımlamış olmanız gerekir.

Daha fazla bilgi için lütfen aşağıdaki belgelere bakın:

Foundation Framework Eklemeleri

Apple, iOS 9'da Temel çerçevede aşağıdaki değişiklikleri içeriyordu:

NSBundle'da yapılan değişiklikler

iOS 9 için NSBundle sınıfında aşağıdaki değişiklikler yapılmıştır:

  • GetPreservationPriorityForTag (NSString tag) - Verilen etikete sahip kaynaklar için geçerli koruma önceliğini alır. Geçerli değerler için aralığındadır 0.0 1.0, önce en düşük önceliğe sahip kaynaklar temizlenir.
  • SetPreservationPriorityForTag (double priority, NSSet tags) - Verilen etiketlere sahip kaynaklar için geçerli koruma önceliğini ayarlar. Geçerli değerler için aralığındadır 0.0 1.0, önce en düşük önceliğe sahip kaynaklar temizlenir.

Daha fazla bilgi için bkz. Apple'ın NSBundle Başvurusu.

NSProcessInfo'da yapılan değişiklikler

Bir iOS cihazında çalışan her işlemin tek bir İşlem Bilgileri Aracısı (PIA) vardır. Geçerli PIA hakkında bilgi sağlamak ve belirli bir işlem için güç ve termal yönetimi kontrol etmek için NSProcessInfo sınıfını kullanın.

Örneğin, bir işlemin otomatik sonlandırmasını denetlemek için aşağıdaki kodu kullanabilirsiniz:

// Disable automatic termination
var activity = NSProcessInfo.ProcessInfo.BeginActivity(NSActivityOptions.AutomaticTerminationDisabled, "Define reason for change here...");

// Perform the required task
...

// Return to normal operation
NSProcessInfo.ProcessInfo.EndActivity(activity);

Daha fazla bilgi için bkz. Apple'ın NSProcessInfo Başvurusu.

Düşük Güç Moduna Tepki Verme

LowPowerModeEnabled Uygulamanın üzerinde çalıştığı iOS cihazında Düşük Güç Modu'nun etkinleştirilip etkinleştirilmediğini belirlemek için NSProcessInfo sınıfının özelliğini kullanın. Örneğin:

// Is the device in low power mode?
if (NSProcessInfo.ProcessInfo.LowPowerModeEnabled) {
    // Reduce activity to conserve energy...
} else {
    // Return to normal activity...
}

HealthKit Framework Değişiklikleri

Apple, iOS 9'da HealthKit çerçevesine aşağıdaki değişiklikleri dahil etti:

  • HealthKit veritabanındaki girişleri toplu silme ve silme izleme desteği. Daha fazla bilgi için bkz. Apple'ın HKDeletedObject, HKAnchoredObjectQuery ve HKHealthStore Sınıf Başvurusu.
  • Yeni izleme kategorileri ve özellikleri sınıfına HKQuantityTypeIdentifier (örneğin UVExposure) ve sınıfına HKCategoryTypeIdentifier (örneğin OvulationTestResult) eklenmiştir.

Xamarin.iOS'ta HealthKit ile çalışma hakkında daha fazla bilgi için lütfen HealthKit'e Giriş belgelerimize bakın.

Yerel Kimlik Doğrulama Çerçevesi Değişiklikleri

Apple, iOS 9'da Yerel Kimlik Doğrulama çerçevesine aşağıdaki değişiklikleri ekledi:

  • EvaluateAccessControl LAContext sınıfının ve EvaluatePolicy yöntemlerini kullanarak, artık önceki başarılı kilit açma girişimlerinin Touch ID eşleşmelerini yeniden kullanabilirsiniz.
  • Kayıtlı parmak listesini alma özelliği.
  • Kimlik doğrulamasına bir parmak eklendiğinde veya kimlik doğrulamasından kaldırıldığında izleme desteği.
  • Anahtar zinciri çağrılarında Kimlik Doğrulama Bağlamı'nı kullanabilme ve AnahtarLık Erişimi denetim listelerini değerlendirme desteği.
  • Kullanıcı istemini koddan iptal etme özelliği.

Daha fazla bilgi için bkz . Xamarin.iOS ile Touch ID ve Face ID.

LAContext Değişiklikleri

iOS 9 için LAContext sınıfında aşağıdaki değişiklikler yapılmıştır:

  • TouchIdAuthenticationMaximumAllowableReuseDuration - Dokunmatik kimlik doğrulamasının yeniden kullanılabilmesi için gereken en uzun süreyi verir.
  • EvaluatedPolicyDomainState - Değerlendirilen ilkenin durumunu alır veya ayarlar.
  • MaxBiometryFailures - iOS 9'da kullanımdan kaldırılmıştır.
  • TouchIdAuthenticationAllowableReuseDuration , dokunmatik kimlik doğrulamasının yeniden kullanılabilmesi için gereken süreyi alır veya ayarlar.
  • EvaluateAccessControl - Bir kimlik doğrulama ilkesini zaman uyumsuz olarak değerlendirir.
  • Invalidate - Belirli bir dokunmatik kimlik doğrulaması geçersiz kılınıyor.
  • IsCredentialSet - Kimlik bilgileri şu anda ayarlanmışsa döndürür true .
  • SetCredentialType Verilen kimlik bilgisi türünü ayarlar.

Daha fazla ayrıntı için lütfen Apple'ın LAContext Başvurusu'ne bakın.

MapKit Framework Değişiklikleri

Apple, iOS 9'da MapKit çerçevesine aşağıdaki değişiklikleri ekledi:

  • MapKit artık Map uygulamasını doğrudan aktarım yol tariflerine başlatmak ve MKLaunchOptions ve MKDirections sınıflarını kullanarak tahmini Varış Zamanı (ETA) sorgulamak için destek sağlar.
  • MapKit ve CLGeocoder sınıfı tarafından döndürülen arama sonuçları da sonucun saat dilimini sağlayabilir.
  • Artık MKAnnotationView sınıfının özelliğini kullanarak DetailCalloutAccessoryView iOS uygulamanız tarafından sunulan Harita Ek Açıklamalarını tamamen özelleştirebilirsiniz.

Daha fazla bilgi için Xamarin.iOS ve Apple'ın CLGeocoder Başvurusu'nda Haritalar ve Ek Açıklamalar ile çalışma hakkında daha fazla bilgi için lütfen iOS Haritalar ve İzlenecek Yol - MapKit'te ek açıklamaları ve yer paylaşımlarını keşfetme belgelerimize bakın.

PassKit Framework Eklemeleri

Apple, iOS 9'da PassKit çerçevesine aşağıdaki değişiklikleri dahil etti:

  • Apple Pay artık mağaza banka ve kredi kartlarının yanı sıra Discover kartlarını da destekliyor. Daha fazla bilgi için Apple'ın PKPaymentRequest Sınıf Başvurusu'nun Ödeme Ağları bölümüne bakın.
  • Doğrudan bir Xamarin.iOS uygulamasının içinden artık Apple Pay'e ödeme ağları ve kart verenler ekleyebilirsiniz. Daha fazla ayrıntı için bkz. Apple'ın PKAddPaymentPassViewController Sınıf Başvurusu .

Xamarin.iOS'ta PassKit ile çalışma hakkında daha fazla bilgi için lütfen PassKit'e Giriş belgelerimize bakın.

Safari Services Framework Eklemeleri

Apple, iOS 9'da Safari Hizmetleri çerçevesinde aşağıdaki değişiklikleri içerir:

  • Artık Xamarin.iOS uygulamasında web içeriğini görüntülemek için yeni SFSafariViewController sınıfını kullanabilirsiniz. Web sitesi verilerini ve tanımlama bilgilerini Safari uygulamasıyla paylaşma olanağı sağlar ve Safari'nin çeşitli özelliklerini (Okuyucu ve Otomatik Doldurma gibi) içerir. SFSafariViewController , web içeriğini görüntülemeyi bitiren kullanıcıları uygulamanıza döndürecek bir Bitti düğmesi içerir.

SFSafariViewController sınıfı, web içeriğinin tek bir sayfasını görüntülemek için uyarlandığından, mevcut Xamarin.iOS uygulamalarınızdaki tüm WKWebKit veya UIWebView denetimlerini değiştirmek için bunu kullanmayı düşünmelisiniz.

Web Sitesini Görüntüleme

Aşağıdaki kod, başka bir görünüm denetleyicisinden SFSafariViewController çağırma örneğidir:

// Create an instance of the Safari Services View Controller
var controller = new SFSafariViewController(new NSUrl("http://www.xamarin.com"));

// Display website
PresentViewController(controller, true, null);

UIKit Framework Değişiklikleri

Apple, iOS 9 için UIKit çerçevesinin çeşitli öğelerine yönelik birçok geliştirme içeriyor. Aşağıdaki bölümlerde bu değişiklikler ayrıntılı olarak anlatılacaktır.

3B Dokunma Olayları

iOS 9 ve i Telefon 6s ve i Telefon 6s Plus'ta yeni olan 3B Touch, iOS uygulamalarınıza basınca duyarlı hareketler ekler. Sonuç olarak, uygulamanız iOS 9 (veya üzeri) üzerinde çalışıyorsa ve iOS cihazı 3B Touch'ı destekleyemiyorsa, basınçtaki değişiklikler olayın tetiklenmesine neden TouchesMoved olur.

Davranıştaki bu değişiklik nedeniyle, X/Y koordinatları değişmemiş olsa bile iOS uygulamalarınız olayın daha sık çağrılması için TouchesMoved hazırlıklı olmalıdır.

Daha fazla bilgi için lütfen 3B Dokunmaya Giriş kılavuzumuza bakın.

Belge Yerinde Açma İşlevi

UIApplicationDelegate sınıfının veya WillFinishLaunching (Application, launchOptions) yöntemlerini kullanarak FinishedLaunching (application, launchOptions) artık bir belgeyi açabilir ve yerinde değiştirebilirsiniz (bir kopya üzerinde çalışmaktan farklı olarak).

Yeni yerinde açma işlevini desteklemek için anahtarını Xamarin.iOS uygulamanızın Info.plist dosyasına değeriyle YESekleyinLSSupportsOpeningDocumentsInPlace.

Daha fazla ayrıntı için lütfen Apple'ın UIApplicationDelegate Başvurusu'ne bakın.

Gelişmiş Dokunma Olayları

Apple, iOS 9'daki Dokunma Olayları'nda çeşitli geliştirmeler sağlamıştır. Bunlar, Dokunma Tahmini'ni kullanma ve ekran yenilemeleri arasındaki ara dokunuşlara erişim elde etme özelliğini içerir.

Daha fazla ayrıntı için lütfen Apple'ın iOS için Olay İşleme Kılavuzu'na bakın.

Uyarlanmış İçerik Getiriliyor

Yeni NSDataAsset sınıf, bir Xamarin.iOS uygulamasının çalışmakta olduğu iOS cihazının bellek ve grafik özelliklerine göre uyarlanmış içeriği getirmesine olanak tanır.

Yeni Düzen Tutturucuları

Yeni NSLayoutAnchor ve NSLayoutDimension düzen tutturucu sınıfları, iOS 9'da düzeni kolaylaştırmak için UIView sınıfının (ve WidthAnchorgibiLeadingAnchor) yeni bağlantı özellikleriyle çalışır.

Daha fazla bilgi için Xamarin.iOS uygulamasında AutoLayout ve Boyut Sınıfları ve Apple'ın NSLayoutAnchor Başvurusu, NSLayoutDimension Başvurusu ve UIView Başvurusu ile çalışma hakkında daha fazla bilgi için Birleşik Görsel Taslaklara Giriş belgelerimize bakın.

Yeni Okunabilir İçerik Kenar Boşlukları

Yeni UILayoutGuide sınıf, okunabilir içerik kenar boşlukları sağlamak ve bir görünümün içindeki içerik için çizim bölgelerini tanımlamak için kullanılabilir. Daha fazla bilgi için bkz. Apple'ın UILayoutGuide Başvurusu .

Bildirim Değişikliklerinde Metin Girişi

UIUserNotificationAction sınıfı, bildirimlerden metin girişini desteklemek için kullanılabilecek yeni Behavior bir özelliğe sahiptir.

UIApplicationDelegate Değişiklikleri

Apple tarafından resmi olarak kullanımdan kaldırılmasa da, UIApplicationDelegate sınıfının yöntemine FinishedLaunching (UIApplication application) yapılan tüm çağrıların veya WillFinishLaunching (UIApplication application, NSDictionary launchOptions) yöntemleriyle değiştirilmesini FinishedLaunching (UIApplication application, NSDictionary launchOptions) önerir.

Daha fazla ayrıntı için lütfen Apple'ın UIApplicationDelegate Başvurusu'ne bakın.

UIKit Dynamics Değişiklikleri

Apple, iOS 9'da UIKit Dynamics'te aşağıdaki değişiklikleri ekledi:

  • Dynamics artık dikdörtgen olmayan çarpışma sınırları için destek sağlıyor.
  • Yeni, özelleştirilebilir UIFieldBehavior sınıf çeşitli alan türlerini desteklemek için kullanılır.
  • Sınıfına UIAttachmentBehavior ek ek türleri eklendi.

Daha fazla ayrıntı için lütfen Apple'ın UIAttachment Başvurusu'ne bakın.

UIPickerView ve UIDatePicker Değişiklikleri

iOS 9'un öncesinde UIPickerView ve UIDatePicker denetimleri yeniden boyutlandırılamazdı ve kapsayıcılarının genişliğini (genellikle uygulamanın üzerinde çalıştığı iOS cihazının genişliği) dolduracak şekilde otomatik olarak yeniden boyutlandırılırdı.

iOS 9'da, bu otomatik yeniden boyutlandırma artık gerçekleşmez ve denetimler ekran boyutuna ve yönlendirmesine bakılmaksızın tüm iOS cihazlarında 320 nokta genişliğinde işlenir.

Bu durumu düzeltmek için Otomatik Düzen ve Boyut Sınıfları'nı kullanarak denetimin genişliğini üst kapsayıcının (görünüm) kenarlarına sabitleyin ve gerekli yüksekliği belirtin. Xamarin.iOS uygulamasında Otomatik Düzen ve Boyut Sınıfları ile çalışma hakkında daha fazla bilgi için lütfen Birleşik Görsel Taslaklara Giriş belgelerimize bakın.

Yeni UITextInputAssistantItem Sınıfı

Kısayol Çubuğu'nda Çubuk Düğme Gruplarının düzenini oluşturmak için yeni UITextInputAssistantItem sınıfı kullanın. Kısayol Çubuğu, yazma kısayolları sağlamak için yumuşak klavyede kullanılabilen yeni bir alandır.