Freigeben über


Zusätzliche iOS 9 Frameworks-Änderungen

In diesem Artikel werden zusätzliche, kleinere Änderungen oder Verbesserungen an vorhandenen Frameworks für iOS 9 behandelt.

iOS 9-Logo

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:

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 Bereich 0.0 bis 1.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 Bereich 0.0 bis 1.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 (zUVExposure. B. ) und der HKCategoryTypeIdentifier Klasse (z. B. ) wurden neue Nachverfolgungskategorien und -merkmale hinzugefügt HKQuantityTypeIdentifier (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 und EvaluatePolicy 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:

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 "YESInfo.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.