Como controlar a ver em seu iPad App

Ao criar seu aplicativo para iPad, você precisa incluir código que controla a visão nesse app. O exemplo a seguir app iPad é projetado para exibir palavras de rolagem para baixo na tela. Após a abertura da DeepThoughtsViewController.m arquivo para que ele aparece no editor de texto, você inserir o código em negrito (o código que não está em negrito é fornecido pelo modelo de aplicativo baseado-View):

#import "DeepThoughtsViewController.h"#importar "Constants.h"@implementation DeepThoughtsViewControllervelocidade @synthesize, imageView-marca #pragma -marca #pragma ciclo de vida Ver/ * // O inicializador designado. Substituir para executar a configuração que é necessária antes de a vista é loaded.- (id) initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil {if (self = [Super initWithNibName: Pacote nibNameOrNil: nibBundleOrNil]) {// personalizado inicialização} return auto -} * // * // Implementar loadView para criar uma hierarquia de exibição programaticamente, sem usar um loadView nib.- (void) {} ​​* // * // Implementar viewDidLoad fazer a configuração adicional depois de carregar a vista, normalmente a partir de um nib.- (void) viewDidLoad {[super viewDidLoad] -} * /- (Void) viewDidLoad {  [Super viewDidLoad] - [NSTimer scheduledTimerWithTimeInterval: 0,5 meta: auto seletor: @selector (NoCronômetro) userInfo: nil repete: YES] - if ([[NSUserDefaults standardUserDefaults] objectForKey: kWordsOfWisdom]!) {[[NSUserDefaults standardUserDefaults] setObject: @"Peace Love Música Groovy" forKey: kWordsOfWisdom] -fallingWords = @"Peace Love Música Groovy"- }  outro {fallingWords = [[NSUserDefaults standardUserDefaults] stringForKey: kWordsOfWisdom] - } if ([[NSUserDefaults standardUserDefaults] objectForKey: kSpeed]!) {[[NSUserDefaults standardUserDefaults] setDouble: 10,0 forKey: kSpeed] - Velocidade = kMaxSpeed-10.0-}  outro {Velocidade = kMaxSpeed ​​- [[NSUserDefaults standardUserDefaults] doubleForKey: kSpeed] - }}marca #pragma -#pragma marca de Animação- (Void) {NoCronômetro  UILabel * fallingImageView = [[UILabel Alloc] initWithFrame: CGRectMake (0, 0, 100, 30)] - fallingImageView.text = fallingWords- fallingImageView.textColor = [UIColor purpleColor] -  fallingImageView.font = [UIFont systemFontOfSize: 30] - fallingImageView.backgroundColor = [UIColor clearColor] -   fallingImageView.adjustsFontSizeToFitWidth = do Sim  int STARTX = round (random ()% 400) - int FimX = round (random ()% 400) - // Velocidade de queda dupla randomSpeed ​​= (1 / rodada (random ()% 100) +1) * velocidade- // tamanho da imagem- scaleH dupla = (1 / rodada (random ()% 100) +1) * 60- scaleW dupla = (1 / rodada (random ()% 100) +1) * 200-  [Self.view addSubview: fallingImageView] -  fallingImageView.frame = CGRectMake (STARTX, -100, scaleW, scaleH) -  fallingImageView.alpha = .75-  [UIView beginAnimations: contexto nulo: fallingImageView] - [UIView setAnimationDuration: randomSpeed] - [UIView setAnimationDelegate: self] - [UIView setAnimationDidStopSelector: @selector (animationDone: terminado: Contexto:)] -  fallingImageView.frame = CGRectMake (FimX, self.view.frame.size.height, scaleW, scaleH) -  [UIView commitAnimations] -}-(Void) animationDone: (NSString *) animationID terminado: (NSNumber *) contexto acabado: (id) {contexto UIImageView * fallingImageView = context [FallingImageView removeFromSuperview] - [Liberação fallingImageView] -}marca #pragma -Controles marca #pragma- (IBAction) Definições {}marca #pragma -#pragma marca de orientação// Substituir para permitir que outros do que a shouldAutorotateToInterfaceOrientation orientation.- retrato padrão (BOOL) orientações: (UIInterfaceOrientation) interfaceOrientation {return do Sim}marca #pragma -#pragma Gestão marca de Memória- (Void) didReceiveMemoryWarning {// Libera a vista, se ele não tem um superview [Super didReceiveMemoryWarning] -. // Liberar quaisquer dados armazenados em cache, imagens, etc que não estão em uso.} - (Void) {// viewDidUnload liberar qualquer subviews retidos do principal view.// por exemplo, self.myOutlet = nil -} - (void) dealloc {[super dealloc] -} @ final

Aqui está uma repartição do código que você acrescentar:

  • A primeira instrução que você adicionar as importações dos Constants.h Arquivo. Agora você pode usar qualquer chave que você configurou com NSUserDefaults no código subsequente para recuperar as configurações do usuário.

  • Objective-C cria os métodos de acesso que você precisa para você sempre que você incluir um @synthesize Instrução- a declaração no código anterior cria um método de acesso para cada @propriedade declaração (velocidade e imageView).

  • Os dois # Marca Pragma declarações contêm o código de inicialização e carga-view.

  • o viewDidLoad mensagem é enviada logo após a exibição foi carregado a partir do arquivo nib (o .xib arquivo que você pode modificar no Interface Builder). Este é o lugar onde você insere o código para exibição de inicialização, que neste caso significa que indica palavras que caem 'DeepThoughts. o viewDidLoad método que você inserido começa pela criação de um temporizador para o intervalo entre cada exibição de palavras em queda.

    Você usa o NSTimer classe para criar temporizadores. Um timer de espera até um determinado intervalo de tempo decorrido e depois incêndios, enviando uma mensagem especificada para um objeto de destino. Esse código usa scheduledTimerWithTimeInterval:-alvo: seletor: USERINFO: repete: método de classe para criar o temporizador e programá-lo no loop de execução atual no modo padrão. O intervalo é de 0,5 segundos, o alvo é auto, eo seletor é a mensagem para enviar para o alvo quando os fogos temporizador - neste caso, No temporizador. o informação de usuário é a informação do usuário para o temporizador (definido como nada), Eo temporizador está definido para repetir - ou seja, ele repetidamente irá reprogramar-se até invalidado.

  • Em seguida, o código verifica para ver se o kWordsOfWisdom locação foi transferida para NSUserDefaults.

  • O código move as preferências do usuário em NSUserDefaults somente após o aplicativo é executado pela primeira vez. Se as definições não foram movidos para NSUserDefaults ainda, o código usa o valor de preferência inicial ( "Amor da paz Groovy Music") para fallingWords. Se as configurações foram movidos para NSUserDefaults, o código lê-los e em seguida, define fallingWords a tudo o que a preferência do usuário é. O código, em seguida, repete este cheque com o velocidade configuração.

    Você usa standardUserDefaults (a NSUserDefaults método de classe) para obter acesso às configurações padrão do usuário padrão, e você pode armazenar dados lá.

  • o marca #pragma seção intitulada controles inclui o método de configurações de espaço reservado para ligar o botão Info Luz para o controlador de vista. Isto é o açao método usando o IBAction qualificador.

  • Ligar o temporizador para o desenho real da tela é o No temporizador método. o UILabel classe implementa uma vista de texto somente leitura. Você pode usar esta classe para desenhar uma ou várias linhas de texto estático. Neste caso, o bloco de código usa o initWithFrame com método CGRectMake para criar um retângulo, com a coordenada x e y-coordenadas do ponto de origem do retângulo em (0, 0) e uma largura especificada e altura (100, 30).

  • O código converte a fallingWords string para fallingImageView para display- configura a cor do texto, fonte e fundo cor- e ajusta o tamanho da fonte para a largura. o fonte e cor do texto propriedades se aplicam a toda a cadeia de texto.

  • O próximo bloco de código usa a função aleatória para os pontos inicial e final (sTARTX e FimX), Para a velocidade e para a largura (scaleW) E altura (scaleH) para fallingImageView.

  • o beginAnimations: Contexto: método inicia o bloco de animação, eo commitAnimations método termina no bloco. Dentro do bloco, o código define os valores de propriedade para fazer alterações visuais que compõem a animação.

  • o setAnimationDuration método define a duração animação e setAnimationDidStopSelector define a mensagem para enviar ao delegado animação quando a animação pára. O delegado animação é animationDone, que utiliza removeFromSuperview (Um método de instância do UIView classe) para remover fallingImageView e então usa lançamento (Um método de instância do NSAutoreleasePool classe) para liberar fallingImageView.

  • Finalmente, este código tem dois # Marca Pragma declarações para marcar a seção como Orientação e mais dois # Marca Pragma afirmações acima do didReceiveMemoryWarning método para marcar essa seção como gerenciamento de memória.

menu