Zusätzliche iOS 9 Frameworks-Änderungen
In diesem Artikel werden zusätzliche, kleinere Änderungen oder Verbesserungen an vorhandenen Frameworks für iOS 9 behandelt.
Neben den wichtigsten Änderungen an iOS hat Apple Änderungen und Verbesserungen an mehreren vorhandenen Frameworks in iOS 9 vorgenommen.
Ergänzungen des AVFoundation Framework
Im AVFoundation-Framework können Sie mit der AVSpeechSynthesisVoice-Klasse zusätzlich zur Sprache eine Stimme nach Bezeichner angeben.
Der folgende Code ruft beispielsweise eine Liste aller verfügbaren Stimmen ab:
var voices = AVSpeechSynthesisVoice.GetSpeechVoices ();
Sie können dann eine der Stimmen aus der Liste verwenden, indem Sie sie als Voice
Eigenschaft einer Instanz der AVSpeachUtterance-Klasse festlegen.
Die AVQueuePlayer-Klasse unterstützt jetzt eine Mischung aus Internetstreaming und dateibasierten Medien in der Warteschlange. In früheren Versionen konnten nur Medien desselben Typs in die Warteschlange gestellt werden.
Weitere Informationen finden Sie in der AVSpeechSynthesisVoice-Referenz von Apple.
AvKit-Framework-Ergänzungen
Um mit dem neuen Picture-in-Picture (PIP)-Feature zu arbeiten, enthält das AVKit-Framework die neuen AVPictureInPictureController
klassen AVPlayerViewController :
- AVPictureInPictureController – Diese Klasse ermöglicht es einer iOS 9-App, auf den Benutzer zu reagieren, der die Wiedergabe eines Videos in einem unverankerten, verkleinerbaren PIP-Fenster auf einem iPad startet.
- AVPlayerViewController – Verwaltet einen
AVPlayer
Controller, der zum Präsentieren eines Videos in einem unverankerten, verkleinerbaren PIP-Fenster auf einem iPad verwendet wird.
Weitere Informationen finden Sie in unserer Multitasking für iPad-Dokumentation und der AVPictureInPictureController-Referenz und der AVPlayerViewController-Referenz von Apple.
Einführung in CloudKit-Webdienste
Das CloudKit-Framework optimiert die Entwicklung von Anwendungen, die auf iCloud zugreifen. Dazu gehören das Abrufen von Anwendungsdaten und Ressourcenrechten sowie die Möglichkeit, Anwendungsinformationen sicher zu speichern. Dieses Kit bietet Benutzern eine Ebene der Anonymität, indem sie den Zugriff auf Anwendungen mit ihren iCloud-IDs ermöglicht, ohne persönliche Informationen freizugeben.
Das neue CloudKit Web Services Framework stellt eine JavaScript-Bibliothek (CloudKit JS) bereit, die in Ihre Website integriert werden kann, um Zugriff auf dieselben cloudKit-basierten Daten und Inhalte wie Ihre Xamarin.iOS-App zu ermöglichen.
Wichtig
Bevor Sie mithilfe von CloudKit JS auf Inhalte einer CloudKit-Datenbank zugreifen, diese präsentieren oder aktualisieren können, müssen Sie zuvor das Schema dieser Datenbank definiert haben.
Weitere Informationen finden Sie in den folgenden Dokumenten:
- Einführung in CloudKit – Unsere Einführung in die Verwendung von CloudKit in einer Xamarin.iOS-App.
- CloudKit Schnellstart – Apples Einführung in CloudKit.
- CloudKit JS Reference – CloudKit JS-Dokumentation von Apple.
- CloudKit-Katalog: Eine Einführung in CloudKit (Kakao und JavaScript) – Apples Beispiel-App mit CloudKit und CloudKit JS.
Wichtig
Apple stellt Tools zur Verfügung, die Entwickler dabei unterstützen, die Datenschutz-Grundverordnung (DSGVO) der Europäischen Union umzusetzen.
Ergänzungen zu Foundation Framework
Apple enthielt die folgenden Änderungen am Foundation-Framework in iOS 9:
Änderungen an NSBundle
Die folgenden Änderungen wurden an der NSBundle-Klasse für iOS 9 vorgenommen:
GetPreservationPriorityForTag (NSString tag)
– Ruft die aktuelle Erhaltungspriorität für Ressourcen mit dem angegebenen Tag ab. Gültige Werte befinden sich im Bereich0.0
bis1.0
, Ressourcen mit der niedrigsten Priorität werden zuerst gelöscht.SetPreservationPriorityForTag (double priority, NSSet tags)
– Legt die aktuelle Erhaltungspriorität für Ressourcen mit den angegebenen Tags fest. Gültige Werte befinden sich im Bereich0.0
bis1.0
, Ressourcen mit der niedrigsten Priorität werden zuerst gelöscht.
Weitere Informationen finden Sie in der Apple NSBundle-Referenz.
Änderungen an NSProcessInfo
Jeder Prozess, der auf einem iOS-Gerät ausgeführt wird, verfügt über einen einzigen Prozessinformations-Agent (Process Information Agent, PIA). Verwenden Sie die NSProcessInfo-Klasse , um Informationen zur aktuellen PIA und zur Steuerung von Energie und Thermischem Management für einen bestimmten Prozess bereitzustellen.
Um beispielsweise die automatische Beendigung eines Prozesses zu steuern, können Sie den folgenden Code verwenden:
// 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);
Weitere Informationen finden Sie in der NSProcessInfo-Referenz von Apple.
Reagieren auf den Energiesparmodus
Verwenden Sie die LowPowerModeEnabled
Eigenschaft der NSProcessInfo-Klasse , um zu ermitteln, ob der Energiesparmodus auf dem iOS-Gerät aktiviert wurde, auf dem die App ausgeführt wird. Zum Beispiel:
// Is the device in low power mode?
if (NSProcessInfo.ProcessInfo.LowPowerModeEnabled) {
// Reduce activity to conserve energy...
} else {
// Return to normal activity...
}
HealthKit Framework-Änderungen
Apple enthielt die folgenden Änderungen am HealthKit-Framework in iOS 9:
- Unterstützung für Massenlösch- und Löschnachverfolgung von Einträgen in der HealthKit-Datenbank. Weitere Informationen finden Sie unter " HKDeletedObject", "HKAnchoredObjectQuery " und "HKHealthStore Class Reference ".
- Der Klasse (z
UVExposure
. B. ) und derHKCategoryTypeIdentifier
Klasse (z. B. ) wurden neue Nachverfolgungskategorien und -merkmale hinzugefügtHKQuantityTypeIdentifier
(zOvulationTestResult
. B. ).
Weitere Informationen zum Arbeiten mit HealthKit in Xamarin.iOS finden Sie in der Dokumentation "Einführung in HealthKit ".
Änderungen am lokalen Authentifizierungsframework
Apple enthielt die folgenden Änderungen am Lokalen Authentifizierungsframework in iOS 9:
- Mit den
EvaluateAccessControl
Methoden undEvaluatePolicy
Methoden der LAContext-Klasse können Sie nun Touch-ID-Übereinstimmungen aus vorherigen erfolgreichen Entsperrungsversuchen wiederverwenden. - Die Möglichkeit, eine Liste der aktuell registrierten Finger abzurufen.
- Unterstützung für die Nachverfolgung, wenn ein Finger zur Authentifizierung hinzugefügt oder aus der Authentifizierung entfernt wird.
- Die Möglichkeit, den Authentifizierungskontext in Schlüsselbundanrufen und Unterstützung für die Auswertung von Zugriffssteuerungslisten für den Schlüsselbund zu verwenden.
- Die Möglichkeit, eine Benutzeraufforderung vom Code abzubrechen.
Weitere Informationen finden Sie unter Touch ID und Face ID mit Xamarin.iOS.
LAContext-Änderungen
Die folgenden Änderungen wurden an der LAContext-Klasse für iOS 9 vorgenommen:
- TouchIdAuthenticationMaximumAllowableReuseDuration – Gibt die maximale Zeitspanne zurück, die eine Touch-ID-Authentifizierung wiederverwendet werden kann.
- EvaluatedPolicyDo Standard State – Ruft den Status einer ausgewerteten Richtlinie ab oder legt den Status fest.
- MaxBiometryFailures – Wurde in iOS 9 veraltet.
- TouchIdAuthenticationAllowableReuseDuration Ruft ab oder legt fest, wie lange eine Touch-ID-Authentifizierung wiederverwendet werden kann.
- EvaluateAccessControl – Wertet asynchron eine Authentifizierungsrichtlinie aus.
- Ungültig – Ungültige Authentifizierung einer bestimmten Touch-ID.
- IsCredentialSet – Gibt zurück
true
, wenn die Anmeldeinformationen zurzeit festgelegt sind. - SetCredentialType Legt den angegebenen Anmeldeinformationstyp fest.
Weitere Details finden Sie in der LAContext-Referenz von Apple.
MapKit Framework-Änderungen
Apple enthielt die folgenden Änderungen am MapKit-Framework in iOS 9:
- MapKit bietet jetzt Unterstützung für den direkten Start der Karten-App in Transitbeschreibungen und zum Abfragen der geschätzten Ankunftszeit (ETA) mit den KLASSEN MKLaunchOptions und MKDirections .
- Die von MapKit und der CLGeocoder-Klasse zurückgegebenen Suchergebnisse können auch die Zeitzone des Ergebnisses bereitstellen.
- Mit der Eigenschaft der MKAnnotationView-Klasse können Sie jetzt kartenanmerkungen, die
DetailCalloutAccessoryView
von Ihrer iOS-App präsentiert werden, vollständig anpassen.
Weitere Informationen zum Arbeiten mit Karten und Anmerkungen in Xamarin.iOS und der CLGeocoder-Referenz von Apple finden Sie in der MapKit-Dokumentation unter iOS Karten und Exemplarische Vorgehensweise : Erkunden von Anmerkungen und Überlagerungen in der MapKit-Dokumentation.
Ergänzungen des PassKit-Frameworks
Apple enthielt die folgenden Änderungen am PassKit-Framework in iOS 9:
- Apple Pay unterstützt jetzt sowohl Debit- als auch Kredit-Karte zusammen mit Discover Karte s. Weitere Informationen finden Sie im Abschnitt "Payment Networks " von Apples PKPaymentRequest Class Reference .
- Direkt in einer Xamarin.iOS-App können Sie jetzt Zahlungsnetzwerke und Karte Aussteller zu Apple Pay hinzufügen. Weitere Details finden Sie in der PKAddPaymentPassViewController-Klassenreferenz von Apple.
Weitere Informationen zum Arbeiten mit PassKit in Xamarin.iOS finden Sie in der Dokumentation "Einführung in PassKit ".
Ergänzungen zu Safari Services Framework
Apple enthielt die folgenden Änderungen am Safari Services-Framework in iOS 9:
- Sie können jetzt die neue SFSafariViewController-Klasse verwenden, um Webinhalte in einer Xamarin.iOS-App anzuzeigen. Es bietet die Möglichkeit, Websitedaten und Cookies mit der Safari-App zu teilen und umfasst mehrere Der Features von Safari (z. B. Reader und AutoFill). SFSafariViewController verfügt über eine Schaltfläche "Fertig ", die Benutzer an Ihre App zurückgibt, wenn sie die Anzeige des Webinhalts abgeschlossen haben.
Da die SFSafariViewController-Klasse auf die Anzeige einer einzelnen Seite von Webinhalten zugeschnitten ist, sollten Sie diese verwenden, um alle WKWebKit - oder UIWebView-Steuerelemente in Ihren vorhandenen Xamarin.iOS-Apps zu ersetzen.
Anzeigen einer Website
Der folgende Code ist ein Beispiel für das Aufrufen eines SFSafariViewController aus einem anderen Ansichtscontroller:
// 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-Änderungen
Apple bietet zahlreiche Verbesserungen an mehreren Elementen des UIKit-Frameworks für iOS 9. In den folgenden Abschnitten werden diese Änderungen ausführlich beschrieben.
3D-Touchereignisse
3D Touch ist neu in iOS 9 und auf dem iPhone 6s und iPhone 6s Plus und fügt druckempfindliche Gesten zu Ihren iOS Apps hinzu. Wenn Ihre App auf iOS 9 (oder höher) ausgeführt wird und das iOS-Gerät 3D Touch unterstützen kann, führt die Änderung des Drucks dazu, dass das TouchesMoved
Ereignis ausgelöst wird.
Aufgrund dieser Verhaltensänderung sollten Ihre iOS-Apps darauf vorbereitet sein, dass das TouchesMoved
Ereignis häufiger aufgerufen wird, auch wenn sich die X/Y-Koordinaten nicht geändert haben.
Weitere Informationen finden Sie in unserem Leitfaden zur Einführung in 3D Touch .
Open-In-Place-Funktionalität des Dokuments
Mit den Methoden oder WillFinishLaunching (Application, launchOptions)
Methoden FinishedLaunching (application, launchOptions)
der UIApplicationDelegate-Klasse können Sie nun ein Dokument öffnen und an Ort und Stelle ändern (im Gegensatz zur Arbeit an einer Kopie).
Um die neue Open-In-Place-Funktionalität zu unterstützen, fügen Sie den LSSupportsOpeningDocumentsInPlace
Schlüssel zur Info.plist-Datei Ihrer Xamarin.iOS-App mit dem Wert "YES
Info.plist" hinzu.
Weitere Details finden Sie in der Apple-Referenz zur UIApplicationDelegate.
Erweiterte Touchereignisse
Apple hat verschiedene Verbesserungen für Touchereignisse in iOS 9 bereitgestellt. Dazu gehören die Möglichkeit, die Touchvorhersage zu verwenden und zugriff auf zwischen den Bildschirmaktualisierungen zwischen zwischengeschaltete Fingereingaben zu erhalten.
Weitere Details finden Sie im Leitfaden zur Ereignisbehandlung für Apple für iOS .
Abrufen von maßgeschneiderten Inhalten
Die neue NSDataAsset
Klasse ermöglicht es einer Xamarin.iOS-App, Inhalte abzurufen, die auf die Speicher- und Grafikfunktionen des iOS-Geräts zugeschnitten sind, auf dem sie derzeit ausgeführt wird.
Neue Layoutanker
Die neuen NSLayoutAnchor
Und NSLayoutDimension
Layoutankerklassen arbeiten mit den neuen Ankereigenschaften der UIView-Klasse (z LeadingAnchor
. B. und WidthAnchor
) zusammen, um das Layout in iOS 9 zu vereinfachen.
Weitere Informationen zum Arbeiten mit AutoLayout- und Größenklassen in einer Xamarin.iOS-App und der NSLayoutAnchor Reference, NSLayoutDimension Reference und UIView Reference finden Sie in unserer Dokumentation zu Unified Storyboards.
Neue lesbare Inhaltsränder
Die neue UILayoutGuide
Klasse kann verwendet werden, um lesbare Inhaltsränder bereitzustellen und die Zeichnungsbereiche für Inhalte innerhalb einer Ansicht zu definieren. Weitere Informationen finden Sie in der UILayoutGuide-Referenz von Apple.
Texteingabe in Benachrichtigungsänderungen
Die UIUserNotificationAction-Klasse verfügt über eine neue Behavior
Eigenschaft, mit der Texteingaben von Benachrichtigungen unterstützt werden können.
UIApplicationDelegate-Änderungen
Sie schlagen zwar vor, alle Aufrufe der UIApplicationDelegate-Klasse durch die Methode der UIApplicationDelegate-Klasse durch die FinishedLaunching (UIApplication application, NSDictionary launchOptions)
FinishedLaunching (UIApplication application)
Methoden oder WillFinishLaunching (UIApplication application, NSDictionary launchOptions)
Methoden zu ersetzen.
Weitere Details finden Sie in der Apple-Referenz zur UIApplicationDelegate.
UIKit Dynamics Changes
Apple enthielt die folgenden Änderungen an uiKit Dynamics in iOS 9:
- Dynamics bietet jetzt Unterstützung für nicht rechteckige Kollisionsgrenzen.
- Die neue anpassbare
UIFieldBehavior
Klasse wird verwendet, um verschiedene Feldtypen zu unterstützen. - Der Klasse wurden weitere Anlagentypen hinzugefügt
UIAttachmentBehavior
.
Weitere Details finden Sie in der APPLE-Referenz zur UIAttachment .
Änderungen an UIPickerView und UIDatePicker
Vor iOS 9 waren die UiPickerView- und uiDatePicker-Steuerelemente nicht veränderbar und würden die Größe automatisch ändern, um die Breite ihres Containers auszufüllen (in der Regel die Breite des iOS-Geräts, auf dem die App ausgeführt wurde).
In iOS 9 tritt diese automatische Größenänderung nicht mehr auf, und die Steuerelemente werden unabhängig von Bildschirmgröße und Ausrichtung auf allen iOS-Geräten mit einer Breite von 320 Punkt gerendert.
Um diese Situation zu beheben, verwenden Sie autolayout- und Größenklassen, um die Breite des Steuerelements an die Ränder des übergeordneten Containers (Ansicht) anzuheften und die erforderliche Höhe anzugeben. Weitere Informationen zum Arbeiten mit AutoLayout- und Größenklassen in einer Xamarin.iOS-App finden Sie in unserer Dokumentation zu Unified Storyboards .
Neue UITextInputAssistantItem-Klasse
Verwenden Sie die neue UITextInputAssistantItem
Klasse, um Schaltflächengruppen auf einer Verknüpfungsleiste zu layouten. Die Tastenkombinationsleiste ist ein neuer Bereich, der in der Softtastatur zur Verfügung steht, um Tastenkombinationen bereitzustellen.