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.