Compartilhar via


Introdução ao iOS 6

O iOS 6 inclui uma variedade de novas tecnologias para o desenvolvimento de aplicativos, que o Xamarin.iOS 6 traz para desenvolvedores C#.

O logotipo do iOS 6

Com o iOS 6 e o Xamarin.iOS 6, os desenvolvedores agora têm uma grande quantidade de capacidade à sua disposição para criar aplicativos iOS, incluindo os destinados ao iPhone 5. Este documento lista alguns dos novos recursos mais interessantes disponíveis e links para artigos para cada tópico. Além disso, ele toca em algumas alterações que serão importantes à medida que os desenvolvedores passarem para o iOS 6 e a nova resolução do iPhone 5.

Introdução aos modos de exibição de coleção

As Exibições de Coleção permitem que o conteúdo seja exibido usando layouts arbitrários. Eles permitem criar facilmente layouts semelhantes à grade prontos para uso, ao mesmo tempo em que dão suporte a layouts personalizados. Para obter mais informações, confira o guia Introdução às Exibições de Coleção .

Introdução ao PassKit

A estrutura do PassKit permite que os aplicativos interajam com passagens digitais gerenciadas no aplicativo Passbook. Para obter mais informações, confira o guia Introdução ao Kit de Passagem.

Introdução ao EventKit

A estrutura EventKit fornece uma maneira de acessar os dados Calendários, Eventos de Calendário e Lembretes armazenados pelo Banco de Dados de Calendário. O acesso aos calendários e eventos de calendário está disponível desde o iOS 4, mas o iOS 6 agora expõe o acesso aos dados de lembretes. Para obter mais informações, consulte o guia Introduction to EventKit .

Introdução ao Social Framework

O Social Framework fornece uma API unificada para interagir com redes sociais, incluindo Twitter e Facebook, bem como SinaWeibo para usuários na China. Para obter mais informações, confira o guia Introdução ao Quadro Social .

Alterações no StoreKit

A Apple introduziu dois novos recursos no Store Kit: comprar e baixar o iTunes ou App Store conteúdo de dentro de seu aplicativo e hospedar seus arquivos de conteúdo para compras no aplicativo!. Para obter mais informações, confira o guia Alterações no Kit de Loja .

Outras alterações

ViewWillUnload e ViewDidUnload preteridos

Os ViewWillUnload métodos e ViewDidUnload de UIViewController não são mais chamados no iOS 6. Em versões anteriores do iOS, esses métodos podem ter sido usados por aplicativos para salvar o estado antes que uma exibição seja descarregada e o código de limpeza, respectivamente.

Por exemplo, Visual Studio para Mac criaria um método chamado ReleaseDesignerOutlets, mostrado abaixo, que seria chamado de ViewDidUnload:

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

No entanto, no iOS 6, não é mais necessário chamar ReleaseDesignerOutlets.

Para código de limpeza, os aplicativos do iOS 6 devem usar DidReceiveMemoryWarning. No entanto, o código que chama Dispose deve ser usado com moderação e apenas para objetos com uso intensivo de memória, conforme mostrado abaixo:

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

Novamente, chamar Dispose como acima raramente deve ser necessário. Em geral, a maioria dos aplicativos deve fazer é remover manipuladores de eventos.

Para o caso de salvar o estado, os aplicativos podem executar isso em ViewWillDisappear e ViewDidDisappear em vez de ViewWillUnload.

Resolução do iPhone 5

Os dispositivos iPhone 5 têm uma resolução 640x1136. Os aplicativos direcionados às versões anteriores do iOS aparecerão em caixa de correio quando executados em um iPhone 5, conforme mostrado abaixo:

Aplicativos direcionados a versões anteriores do iOS aparecerão em caixa de correio quando executados em um iPhone 5

Para que o aplicativo apareça em tela inteira no iPhone 5, basta adicionar uma imagem chamada Default-568h@2x.png com uma resolução de 640x1136. A captura de tela a seguir mostra o aplicativo em execução depois que essa imagem foi incluída:

Esta captura de tela mostra o aplicativo em execução depois que essa imagem foi incluída

Subclasse UINavigationBar

No iOS 6 UINavigationBar pode ser subclasse. Isso permite controle adicional da aparência do UINavigationBar. Por exemplo, os aplicativos podem subclasse para adicionar subvisões, animar essas exibições e modificar os Limites do UINavigationBar.

O código abaixo mostra um exemplo de uma subclasse UINavigationBar que adiciona um 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 adicionar uma subclasse UINavigationBar a um UINavigationController, use o UINavigationController construtor que usa o tipo de UINavigationBar e UIToolbar, conforme mostrado abaixo:

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

O uso dessa UINavigationBar subclasse resulta na exibição de imagem sendo exibida conforme mostrado na captura de tela a seguir:

Usar essa subclasse UINavigationBar resulta na exibição de imagem sendo exibida conforme mostrado nesta captura de tela

Orientação da interface

Antes do iOS 6, os aplicativos podiam substituir ShouldAutorotateToInterfaceOrientation, retornando true para quaisquer orientações com suporte do controlador específico. Por exemplo, o código a seguir seria usado para dar suporte apenas ao retrato:

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

No iOS 6 ShouldAutorotateToInterfaceOrientation foi preterido. Em vez disso, os aplicativos podem substituir GetSupportedInterfaceOrientations no controlador de exibição raiz, conforme mostrado abaixo:

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

No iPad, esse padrão será todas as quatro orientações se GetSupportedInterfaceOrientation não for implementado. No iPhone e no iPod Touch, o padrão é todas as orientações, exceto PortraitUpsideDown.