Introducción a iOS 6

iOS 6 incluye una variedad de nuevas tecnologías para desarrollar aplicaciones, que Xamarin.iOS 6 ofrece a los desarrolladores de C#.

Logotipo de iOS 6

Con iOS 6 y Xamarin.iOS 6, los desarrolladores ahora tienen una gran cantidad de funcionalidades a su disposición para crear aplicaciones iOS, incluidas las que tienen como destino iPhone 5. En este documento se enumeran algunas de las características nuevas más interesantes que están disponibles y vínculos a artículos para cada tema. Además, se trata de un par de cambios que serán importantes a medida que los desarrolladores se trasladan a iOS 6 y la nueva resolución de iPhone 5.

Introducción a las vistas de colección

Las vistas de colección permiten mostrar contenido mediante diseños arbitrarios. Permiten crear fácilmente diseños de cuadrícula de forma rápida, al tiempo que admiten diseños personalizados. Para obtener más información, consulte la guía Introducción a las vistas de colección.

Introduction to PassKit (Introducción a PassKit)

El marco PassKit permite a las aplicaciones interactuar con pases digitales que se administran en la aplicación Passbook. Para obtener más información, consulte la guía Introduction to Pass Kit (Introducción al Kit de paso).

Introducción a EventKit

El marco EventKit proporciona una manera de acceder a los datos calendarios, eventos de calendario y recordatorios que almacena la base de datos de calendario. El acceso a los calendarios y eventos de calendario ha estado disponible desde iOS 4, pero iOS 6 ahora expone el acceso a los datos de recordatorios. Para obtener más información, consulte la guía Introduction to EventKit (I ntroduction to EventKit).

Introducción al marco social

Social Framework proporciona una API unificada para interactuar con redes sociales, como Twitter y Facebook, así como Sina Bookingbo para los usuarios de China. Para más información, consulte la guía Introducción al marco social.

Cambios en StoreKit

Apple ha introducido dos nuevas características en el Kit de la Tienda: comprar y descargar contenido de iTunes o App Store desde dentro de la aplicación y hospedar los archivos de contenido para las compras desde la aplicación. Para obtener más información, consulte la guía Cambios en el Kit de almacenamiento.

Otros cambios

ViewWillUnload y ViewDidUnload en desuso

Los ViewWillUnloadViewDidUnload métodos y UIViewController de ya no se llaman en iOS 6. En versiones anteriores de iOS, las aplicaciones pueden haber usado estos métodos para guardar el estado antes de que se descargue una vista y limpiar el código, respectivamente.

Por ejemplo, Visual Studio para Mac crearía un método denominado , que se muestra a continuación, al que se ReleaseDesignerOutlets llamaría desde ViewDidUnload :

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

Sin embargo, en iOS 6, ya no es necesario llamar a ReleaseDesignerOutlets .

Para el código de limpieza, las aplicaciones de iOS 6 deben usar DidReceiveMemoryWarning . Sin embargo, el código que llama debe usarse con moderación y solo para objetos que consumen Dispose mucha memoria, como se muestra a continuación:

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

De nuevo, Dispose la llamada a como se mencionó anteriormente rara vez debería ser necesaria. En general, la mayoría de las aplicaciones deben hacer es quitar controladores de eventos.

En el caso de guardar el estado, las aplicaciones pueden realizar esta operación ViewWillDisappear en y en lugar de ViewDidDisappearViewWillUnload .

iPhone resolución 5

iPhone 5 dispositivos tienen una resolución de 640 x 1136. Las aplicaciones destinadas a versiones anteriores de iOS aparecerán con un cuadro de texto cuando se ejecuten en un iPhone 5, como se muestra a continuación:

Las aplicaciones destinadas a versiones anteriores de iOS aparecerán con forma de letra cuando se ejecuten en iPhone 5.

Para que la aplicación aparezca en pantalla completa en iPhone 5, simplemente agregue una imagen denominada con una resolución Default-568h@2x.png de 640 x 1136. En la captura de pantalla siguiente se muestra la aplicación que se ejecuta después de incluir esta imagen:

En esta captura de pantalla se muestra la aplicación que se ejecuta después de incluir esta imagen

Subclases UINavigationBar

En iOS 6 UINavigationBar se pueden crear subclases. Esto permite un control adicional de la apariencia de UINavigationBar . Por ejemplo, las aplicaciones pueden crear subclases para agregar subvistas, animar esas vistas y modificar los límites de UINavigationBar .

El código siguiente muestra un ejemplo de una subclase UINavigationBar que agrega 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);
​    }
}

Para agregar una subclase a , use el constructor que toma el tipo de UINavigationBar y , como se muestra a UINavigationControllerUINavigationControllerUINavigationBarUIToolbar continuación:

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

El uso de UINavigationBar esta subclase da como resultado que la vista de imagen se muestre como se muestra en la captura de pantalla siguiente:

Al usar esta subclase UINavigationBar, la vista de imagen se muestra como se muestra en esta captura de pantalla.

Orientación de la interfaz

Antes de iOS 6, las aplicaciones podían invalidar , devolviendo ShouldAutorotateToInterfaceOrientation true para cualquier orientación que el controlador determinado admite. Por ejemplo, el código siguiente se usaría para admitir solo vertical:

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

En iOS 6 ShouldAutorotateToInterfaceOrientation está en desuso. En su lugar, las GetSupportedInterfaceOrientations aplicaciones pueden invalidar en el controlador de vista raíz, como se muestra a continuación:

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

En iPad, este valor predeterminado es las cuatro orientaciones si GetSupportedInterfaceOrientation no se implementa. En iPhone y iPod Touch, el valor predeterminado es todas las orientaciones excepto PortraitUpsideDown .