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.
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:
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:
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 UIImageView
hinzufü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
UINavigationController
hinzufü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:
Schnittstellenausrichtung
Vor iOS 6-Anwendungen konnte "true" überschreiben ShouldAutorotateToInterfaceOrientation
und 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
.