Einführung in iOS 6
iOS 6 enthält eine Vielzahl neuer Technologien für die Entwicklung von Apps, die Xamarin.iOS 6 C#-Entwicklern bietet.
Mit iOS 6 und Xamarin.iOS 6 stehen Entwicklern jetzt eine Fülle von Funktionen zur Verfügung, um iOS-Anwendungen zu erstellen, einschließlich solcher, die auf das iPhone 5 abzielen. Dieses Dokument listet einige der spannenderen neuen Features auf, die verfügbar sind, und Links zu Artikeln für jedes Thema. Darüber hinaus berührt es ein paar Änderungen, die wichtig sein werden, wenn Entwickler zu iOS 6 und der neuen Auflösung des iPhone 5 wechseln.
Einführung in Sammlungsansichten
Sammlungsansichten ermöglichen die Anzeige von Inhalten in beliebigen Layouts. Sie ermöglichen es, rasterähnliche Layouts einfach sofort zu erstellen und gleichzeitig benutzerdefinierte Layouts zu 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 Leitfaden 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 in der Kalenderdatenbank gespeichert werden. Der Zugriff auf die Kalender und Kalenderereignisse ist seit iOS 4 verfügbar, aber iOS 6 macht jetzt den Zugriff auf Erinnerungsdaten verfügbar. Weitere Informationen finden Sie im LeitfadenI ntroduction to EventKit .
Einführung in das Soziale Framework
Das Social Framework bietet eine einheitliche API für die Interaktion mit sozialen Netzwerken wie Twitter und Facebook sowie SinaWeibo für Benutzer in China. Weitere Informationen finden Sie im Leitfaden Einführung in das Sozialframework .
Änderungen an StoreKit
Apple hat zwei neue Features im Store Kit eingeführt: Kaufen und Herunterladen von iTunes- oder App Store Inhalten aus Ihrer App und Hosten Ihrer Inhaltsdateien für In-App-Käufe!. Weitere Informationen finden Sie im Leitfaden zu Änderungen am Store Kit .
Weitere Änderungen
ViewWillUnload und ViewDidUnload veraltet
Die ViewWillUnload
Methoden und ViewDidUnload
von 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 vor dem Entladen einer Ansicht bzw. zum Bereinigen von Code verwendet.
Beispielsweise würde Visual Studio für Mac eine Methode namens ReleaseDesignerOutlets
erstellen, die unten gezeigt wird, die dann von ViewDidUnload
aufgerufen wird:
void ReleaseDesignerOutlets ()
{
if (myOutlet != null) {
myOutlet.Dispose ();
myOutlet = null;
}
}
In iOS 6 ist es jedoch nicht mehr erforderlich, aufzurufen ReleaseDesignerOutlets
.
Zum Bereinigen von Code sollten iOS 6-Anwendungen verwenden DidReceiveMemoryWarning
. Code, der aufruft Dispose
, sollte jedoch sparsam und nur für speicherintensive Objekte verwendet werden, wie unten gezeigt:
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 tun, ist das Entfernen von Ereignishandlern.
Für den Fall des Speicherzustands können Anwendungen dies in ViewWillDisappear
und ViewDidDisappear
anstelle von ViewWillUnload
ausführen.
iPhone 5 Auflösung
iPhone 5-Geräte haben eine Auflösung von 640 x 1136. Anwendungen, die auf frühere Versionen von iOS ausgerichtet sind, werden bei der Ausführung auf einem iPhone 5 wie unten gezeigt in einem Briefkasten angezeigt:
Damit die Anwendung auf dem iPhone 5 im Vollbildmodus angezeigt wird, fügen Sie einfach ein Bild mit Default-568h@2x.png
der Auflösung 640 x 1136 hinzu. Der folgende Screenshot zeigt die Anwendung, die nach der Aufnahme dieses Bilds ausgeführt wird:
Unterklassen von UINavigationBar
In iOS 6 UINavigationBar
kann unterklassiert werden. Dies ermöglicht eine zusätzliche Kontrolle über das Aussehen und Verhalten von UINavigationBar
. Anwendungen können beispielsweise Unterklassen hinzufügen, diese Ansichten animieren und die Grenzen des UINavigationBar
ändern.
Der folgende Code zeigt ein Beispiel für eine Unterklasse UINavigationBar
, die eine 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);
}
}
Um eine Unterklasse UINavigationBar
zu hinzuzufügen UINavigationController
, verwenden Sie den UINavigationController
Konstruktor, der den Typ von UINavigationBar
und UIToolbar
annimmt, wie unten gezeigt:
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 konnten Anwendungen überschreiben ShouldAutorotateToInterfaceOrientation
, wobei true für alle vom jeweiligen Controller unterstützten Ausrichtungen zurückgegeben wurde. 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 auf dem Stammansichtscontroller wie unten dargestellt überschreiben GetSupportedInterfaceOrientations
:
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
{
return UIInterfaceOrientationMask.Portrait;
}
Auf dem iPad werden standardmäßig alle vier Ausrichtungen verwendet, wenn GetSupportedInterfaceOrientation
nicht implementiert ist. Auf iPhone und iPod Touch sind standardmäßig alle Ausrichtungen mit Ausnahme von PortraitUpsideDown
.