Introduction à iOS 6
iOS 6 inclut une variété de nouvelles technologies pour le développement d’applications, que Xamarin.iOS 6 apporte aux développeurs C#.
Avec iOS 6 et Xamarin.iOS 6, les développeurs disposent désormais d’une grande capacité pour créer des applications iOS, y compris celles qui ciblent iPhone 5. Ce document répertorie quelques-unes des nouvelles fonctionnalités les plus intéressantes disponibles et des liens vers des articles pour chaque rubrique. En outre, il touche à quelques modifications qui seront importantes à mesure que les développeurs passent à iOS 6 et la nouvelle résolution d’iPhone 5.
Présentation des vues de collection
Les vues de collection permettent d’afficher du contenu à l’aide de dispositions arbitraires. Ils permettent également de créer facilement des dispositions de type grille hors de la boîte, tout en prenant en charge les dispositions personnalisées. Pour plus d’informations, consultez le guide Présentation des vues de collection.
Présentation de PassKit
L’infrastructure PassKit permet aux applications d’interagir avec des passes numériques gérées dans l’application Passbook. Pour plus d’informations, consultez le guide Introduction to Pass Kit.
Présentation d’EventKit
L’infrastructure EventKit permet d’accéder aux données Calendriers, Événements de calendrier et Rappels que la base de données calendrier stocke. L’accès aux calendriers et aux événements de calendrier a été disponible depuis iOS 4, mais iOS 6 expose désormais l’accès aux données de rappel. Pour plus d’informations, consultez le guide d’introduction à EventKit .
Présentation du Cadre social
Le Framework social fournit une API unifiée pour interagir avec les réseaux sociaux, notamment Twitter et Facebook, ainsi que SinaWeibo pour les utilisateurs en Chine. Pour plus d’informations, consultez le guide d’introduction au cadre social.
Modifications apportées à StoreKit
Apple a introduit deux nouvelles fonctionnalités dans le Kit Store : l’achat et le téléchargement de contenu iTunes ou App Store à partir de votre application, et l’hébergement de vos fichiers de contenu pour les achats dans l’application !. Pour plus d’informations, consultez le guide des modifications apportées au Kit store.
Autres modifications
ViewWillUnload et ViewDidUnload Déconseillé
Les ViewWillUnload
méthodes et ViewDidUnload
les méthodes de UIViewController
ne sont plus appelées dans iOS 6. Dans les versions précédentes d’iOS, ces méthodes peuvent avoir été utilisées par les applications pour enregistrer l’état avant un déchargement d’affichage et le code de nettoyage respectivement.
Par exemple, Visual Studio pour Mac créerait une méthode appelée ReleaseDesignerOutlets
, illustrée ci-dessous, qui serait ensuite appelée à partir de ViewDidUnload
:
void ReleaseDesignerOutlets ()
{
if (myOutlet != null) {
myOutlet.Dispose ();
myOutlet = null;
}
}
Toutefois, dans iOS 6, il n’est plus nécessaire d’appeler ReleaseDesignerOutlets
.
Pour le code de nettoyage, les applications iOS 6 doivent utiliser DidReceiveMemoryWarning
. Toutefois, le code que les appels Dispose
doivent être utilisés avec parcimonie et uniquement pour les objets nécessitant beaucoup de mémoire, comme indiqué ci-dessous :
if (myImageView != null){
if (myImageView.Superview == null){
myImageView.Dispose();
myImageView = null;
}
}
Là encore, l’appel Dispose
comme indiqué ci-dessus doit rarement être nécessaire. En général, la plupart des applications doivent faire consiste à supprimer des gestionnaires d’événements.
Pour le cas d’enregistrement de l’état, les applications peuvent effectuer cette opération au ViewWillDisappear
ViewDidDisappear
lieu de ViewWillUnload
.
Résolution iPhone 5
Les appareils iPhone 5 ont une résolution de 640 x 1136. Les applications ciblant les versions précédentes d’iOS s’affichent en boîte de lettres lorsqu’elles s’exécutent sur un iPhone 5, comme indiqué ci-dessous :
Pour que l’application apparaisse en plein écran sur iPhone 5, ajoutez simplement une image nommée Default-568h@2x.png
ayant une résolution de 640 x 1136. La capture d’écran suivante montre l’application en cours d’exécution une fois cette image incluse :
Sous-classe UINavigationBar
Dans iOS 6 UINavigationBar
peut être sous-classé. Cela permet un contrôle supplémentaire de l’apparence du UINavigationBar
. Par exemple, les applications peuvent sous-classe pour ajouter des sous-vues, animer ces vues et modifier les limites du UINavigationBar
.
Le code ci-dessous montre un exemple de sous-classe UINavigationBar
qui ajoute un UIImageView
:
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);
}
}
Pour ajouter une sous-classe UINavigationBar
à un UINavigationController
constructeur UINavigationController
qui prend le type du UINavigationBar
et UIToolbar
, comme indiqué ci-dessous :
navController = new UINavigationController (typeof(CustomNavBar), typeof(UIToolbar));
L’utilisation de cette UINavigationBar
sous-classe entraîne l’affichage de l’image affiché, comme illustré dans la capture d’écran suivante :
Orientation de l’interface
Avant que les applications iOS 6 puissent remplacer ShouldAutorotateToInterfaceOrientation
, retourner true pour toutes les orientations prises en charge par le contrôleur particulier. Par exemple, le code suivant est utilisé pour prendre en charge uniquement portrait :
public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
{
return (toInterfaceOrientation == UIInterfaceOrientation.Portrait);
}
Dans iOS 6 ShouldAutorotateToInterfaceOrientation
est déconseillé.
Au lieu de cela, les applications peuvent remplacer GetSupportedInterfaceOrientations
sur le contrôleur d’affichage racine, comme indiqué ci-dessous :
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
{
return UIInterfaceOrientationMask.Portrait;
}
Sur iPad, cette valeur est par défaut pour les quatre orientations si GetSupportedInterfaceOrientation
elle n’est pas implémentée. Sur iPhone et iPod Touch, la valeur par défaut est toutes les orientations sauf PortraitUpsideDown
.