Freigeben über


Einführung in iOS 6

iOS 6 enthält eine Vielzahl neuer Technologien für die Entwicklung von Apps, die Xamarin.iOS 6 an C#-Entwickler bringt.

Das iOS 6-Logo

Mit iOS 6 und Xamarin.iOS 6 haben Entwickler jetzt eine Fülle von Funktionen zur Verfügung, um iOS-Anwendungen zu erstellen, einschließlich derer, die auf iPhone 5 abzielen. Dieses Dokument enthält einige der spannenderen neuen Features, die verfügbar sind, und Links zu Artikeln für jedes Thema. Darüber hinaus berührt es einige Änderungen, die wichtig sein werden, wenn Entwickler auf iOS 6 und die neue Auflösung von iPhone 5 umsteigen.

Einführung in Sammlungsansichten

Sammlungsansichten ermöglichen die Anzeige von Inhalten mit beliebigen Layouts. Sie ermöglichen das einfache Erstellen von rasterähnlichen Layouts außerhalb des Felds, während sie auch benutzerdefinierte Layouts unterstützen. Weitere Informationen finden Sie im Leitfaden "Einführung in Sammlungsansichten ".

Introduction to PassKit (Einführung in PassKit)

Das PassKit-Framework ermöglicht Anwendungen die Interaktion mit digitalen Pässen, die in der Passbook-App verwaltet werden. Weitere Informationen finden Sie im Handbuch "Einführung in das Pass Kit".

Einführung in EventKit

Das EventKit-Framework bietet eine Möglichkeit, auf die Kalender-, Kalenderereignisse- und Erinnerungsdaten zuzugreifen, die die Kalenderdatenbank speichert. Der Zugriff auf die Kalender und Kalenderereignisse ist seit iOS 4 verfügbar, aber iOS 6 macht jetzt Zugriff auf Erinnerungsdaten verfügbar. Weitere Informationen finden Sie im Leitfaden "I ntroduction to EventKit ".

Einführung in das soziale Rahmenwerk

Das Social Framework bietet eine einheitliche API für die Interaktion mit sozialen Netzwerken wie Twitter und Facebook sowie SinaWeibo für Benutzer*innen in China. Weitere Informationen finden Sie im Leitfaden "Einführung in das soziale Framework ".

Änderungen an StoreKit

Apple hat zwei neue Features im Store Kit eingeführt: Kauf und Download von iTunes- oder App Store-Inhalten aus Ihrer App und Hosting Ihrer Inhaltsdateien für In-App-Käufe!. Weitere Informationen finden Sie im Handbuch "Änderungen am Store Kit ".

Weitere Änderungen

ViewWillUnload und ViewDidUnload Veraltet

Die ViewWillUnload Methoden und ViewDidUnload Methoden UIViewController werden in iOS 6 nicht mehr aufgerufen. In früheren Versionen von iOS wurden diese Methoden möglicherweise von Anwendungen zum Speichern des Zustands verwendet, bevor eine Ansicht entladen wird, bzw. Bereinigungscode.

Beispielsweise würde Visual Studio für Mac eine Methode namens ReleaseDesignerOutlets"unten" erstellen, die dann von ViewDidUnload:

void ReleaseDesignerOutlets ()
{
    if (myOutlet != null) {
        myOutlet.Dispose ();
        myOutlet = null;
    }
}

In iOS 6 ist es jedoch nicht mehr erforderlich, aufzurufen ReleaseDesignerOutlets.

Für Bereinigungscode sollten iOS 6-Anwendungen verwendet werden DidReceiveMemoryWarning. Code, der aufruft Dispose , sollte jedoch sparsam und nur für speicherintensive Objekte verwendet werden, wie unten dargestellt:

if (myImageView != null){
    if (myImageView.Superview == null){
        myImageView.Dispose();
        myImageView = null;
    }
}

Auch hier sollte der Aufruf Dispose wie oben selten erforderlich sein. Im Allgemeinen sollten die meisten Anwendungen Ereignishandler entfernen.

Für den Fall des Speicherns des Zustands können Anwendungen dies in ViewWillDisappear und ViewDidDisappear anstelle von ViewWillUnload.

iPhone 5 Auflösung

iPhone 5-Geräte verfügen über eine Auflösung von 640 x 1136. Anwendungen, die auf frühere Versionen von iOS ausgerichtet sind, werden letterboxed angezeigt, wenn sie auf einem iPhone 5 ausgeführt werden, wie unten dargestellt:

Anwendungen, die auf frühere Versionen von iOS ausgerichtet sind, werden letterboxen angezeigt, wenn sie auf einem iPhone 5 ausgeführt werden.

Damit die Anwendung auf dem iPhone 5 im Vollbildmodus angezeigt wird, fügen Sie einfach ein Bild Default-568h@2x.png mit einer Auflösung von 640 x 1136 hinzu. Der folgende Screenshot zeigt die Anwendung, die nach dem Einfügen dieses Bilds ausgeführt wird:

Dieser Screenshot zeigt die Anwendung, die nach dem Einfügen dieses Bilds ausgeführt wird.

Unterklassen-UINavigationBar

In iOS 6 UINavigationBar kann unterklassigt werden. Dies ermöglicht eine zusätzliche Kontrolle über das Aussehen und Verhalten der UINavigationBar. Beispielsweise können Anwendungen Unterklassen zum Hinzufügen von Unteransichten hinzufügen, diese Ansichten animieren und die Grenzen der .UINavigationBar

Der folgende Code zeigt ein Beispiel für eine Unterklasse UINavigationBar , die folgendes UIImageViewhinzufügt:

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);
​    }
}

Wenn Sie einer Unterklasse UINavigationBar UINavigationControllerhinzufügen möchten, verwenden Sie den UINavigationController Konstruktor, der den Typ des UINavigationBar und UIToolbar, wie unten dargestellt, verwendet:

navController = new UINavigationController (typeof(CustomNavBar), typeof(UIToolbar));

Die Verwendung dieser UINavigationBar Unterklasse führt dazu, dass die Bildansicht wie im folgenden Screenshot dargestellt angezeigt wird:

Die Verwendung dieser UINavigationBar-Unterklassen führt dazu, dass die Bildansicht wie in diesem Screenshot dargestellt angezeigt wird.

Schnittstellenausrichtung

Vor iOS 6-Anwendungen konnte "true" überschreiben ShouldAutorotateToInterfaceOrientationund für alle Ausrichtungen zurückgegeben werden, die der jeweilige Controller unterstützt. Beispielsweise wird der folgende Code verwendet, um nur Hochformat zu unterstützen:

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
    {
        return (toInterfaceOrientation == UIInterfaceOrientation.Portrait);
    }

In iOS 6 ShouldAutorotateToInterfaceOrientation ist veraltet. Stattdessen können Anwendungen den Stammansichtscontroller außer Kraft setzen GetSupportedInterfaceOrientations , wie unten dargestellt:

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
    {
        return UIInterfaceOrientationMask.Portrait;
    }

Auf dem iPad werden bei nicht implementierter Standardeinstellung alle vier Ausrichtungen GetSupportedInterfaceOrientation verwendet. Auf iPhone und iPod Touch ist die Standardeinstellung alle Ausrichtungen außer PortraitUpsideDown.