Vídeo: COMO CONTROLAR O TEMPO E O QUE SEUS FILHOS ACESSAM NO CELULAR - SCREEN TIME | ANDROID4ALL 2025
Ao criar seu aplicativo para iPad, você precisa incluir o código que controla a visualização naquele aplicativo. O exemplo seguinte do aplicativo iPad foi projetado para exibir as palavras que se deslocam para baixo na tela. Depois de abrir o arquivo DeepThoughtsViewController. m para que ele apareça no editor de texto, insira o código em negrito (o código que não está em negrito é fornecido pelo modelo de aplicativo com base em exibição):
#import "DeepThoughtsViewController. h" #import " Constantes. h " @implementação DeepThoughtsViewController @ Sintetizar a velocidade, imageView; #pragma mark - #pragma mark Exibir o ciclo de vida / * // O inicializador designado. Substituir para executar a configuração necessária antes que a vista seja carregada. - (id) initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil {if (self = [super initWithNibName: nibNameOrNil bundle: nibBundleOrNil]) {// Custom initia lization} return self;} * / / * // Implementar loadView para criar uma hierarquia de exibição de forma programática, sem usar um nib. - (void) loadView {} * / / * // Implemente viewDidLoad para fazer uma configuração adicional após o carregamento da vista, geralmente a partir de um nib. - (void) viewDidLoad {[super viewDidLoad];} * / - (void) viewDidLoad { [super viewDidLoad]; [NSTimer scheduleTimerWithTimeInterval:. 5 alvo: auto-seletor: @selector (onTimer) userInfo: nil repeats: YES]; if (! [[NSUserDefaults standardUserDefaults] objectForKey: kWordsOfWisdom]) { [[NSUserDefaults standardUserDefaults] setObject: @ " Peace Love Groovy Music " forKey: kWordsOfWisdom]; fallingWords = @ " Love Love Groovy Music " ; } else { fallingWords = [[NSUserDefaults standardUserDefaults] stringForKey: kWordsOfWisdom]; } se (! [[NSUserDefaults standardUserDefaults] objectForKey: kSpeed]) { [[NSUserDefaults standardUserDefaults] setDouble: 10. 0 forKey: kSpeed]; speed = kMaxSpeed-10. 0;} else { speed = kMaxSpeed - [[NSUserDefaults standardUserDefaults] doubleForKey: kSpeed]; } } #pragma mark - #pragma mark Animação - (void) onTimer { UILabel * fallingImageView = [[UILabel alloc] initWithFrame: CGRectMake (0, 0, 100, 30)]; fallingImageView. texto = palavras faltantes; fallingImageView. textColor = [UIColor purpleColor]; fallingImageView. font = [UIFont systemFontOfSize: 30]; fallingImageView. backgroundColor = [UIColor clearColor]; fallingImageView. ajustaFontSizeToFitWidth = YES; int startX = round (random ()% 400); int endX = round (random ()% 400); // velocidade de queda double randomSpeed = (1 / round (random ()% 100) +1) * velocidade; // tamanho da imagem; escala duplaH = (1 / rodada (aleatória ()% 100) +1) * 60; escala dupla W = (1 / rodada (aleatória ()% 100) +1) * 200; [self.veja addSubview: fallingImageView]; fallingImageView. frame = CGRectMake (startX, -100, scaleW, scaleH); fallingImageView. alfa =. 75; [UIView beginAnimations: nil context: fallingImageView]; [UIView setAnimationDuration: randomSpeed]; [UIView setAnimationDelegate: self]; [UIView setAnimationDidStopSelector: @selector (animationDone: finished: context:)]; fallingImageView. frame = CGRectMake (endX, auto. view. frame. size. height, scaleW, scaleH); [UIView commitAnimations]; } - (void) animationDone: (NSString *) animationID terminou: (NSNumber *) contexto concluído: (id) context { UIImageView * fallingImageView = context; [fallingImageView removeFromSuperview]; [lançamento de FallImageView]; } #pragma mark - #pragma mark Controlos - (IBAction) configurações { } # marca de praga - # marca de praga Orientação // Substituir para permitir orientações diferentes da orientação vertical padrão. - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {return YES;} #pragma mark - # marca de praga Gerenciamento de memória - (void) didReceiveMemoryWarning {// Libera a exibição se ela não tiver um superview. [super didReceiveMemoryWarning]; // Libera quaisquer dados armazenados em cache, imagens, etc. que não estejam em uso.} - (void) viewDidUnload {// Libera todas as submissões retidas da vista principal. // e. g. auto. myOutlet = nil;} - (void) dealloc {[super dealloc];} @end
Aqui está uma quebra do código que você adiciona:
-
A primeira declaração que você adiciona importa as Constantes. arquivo h. Agora você pode usar as chaves que você configurou com NSUserDefaults no código subseqüente para recuperar as configurações do usuário.
-
Objetivo-C cria os métodos de acesso que você precisa para você sempre que você incluir uma instrução @synthesize; a declaração no código anterior cria um método de acesso para cada declaração de @property (velocidade e imageView).
-
As duas instruções # pragma mark contêm o código de inicialização e carregamento.
-
A mensagem viewDidLoad é enviada logo após a exibição ter sido carregada a partir do arquivo nib (o arquivo xib que você pode modificar no Interface Builder). Este é o lugar onde você insere seu código para a inicialização da exibição, o que, neste caso, significa exibir as palavras caem do DeepThoughts. O método viewDidLoad que você inseriu começa por configurar um cronômetro para o intervalo entre cada exibição de palavras caindo.
Você usa a classe NSTimer para criar temporizadores. Um temporizador aguarda até um certo intervalo de tempo decorrido e, em seguida, dispara, enviando uma mensagem especificada para um objeto alvo. Este código usa scheduleTimerWithTimeInterval: target: selector: userInfo: repeats: método de classe para criar o temporizador e agendá-lo no loop de execução atual no modo padrão. O intervalo é 0. 5 segundos, o alvo é auto, eo seletor é a mensagem a enviar para o alvo quando o temporizador dispara - neste caso, noTimer. O userInfo é a informação do usuário para o temporizador (definido como nulo) e o temporizador está configurado para repetir - ou seja, ele se reprogramará repetidamente até ser invalidado.
-
Em seguida, o código verifica se a configuração kWordsOfWisdom foi movida para NSUserDefaults.
-
O código move as preferências do usuário para NSUserDefaults somente após o aplicativo ser executado pela primeira vez. Se as configurações ainda não tiverem sido movidas para NSUserDefaults, o código usa o valor de preferência inicial ("Love Love Groovy Music") para o Word. Se as configurações foram movidas para NSUserDefaults, o código as lê e, em seguida, define o quebra-cabeça para qualquer que seja a preferência do usuário. O código então repete essa verificação com a configuração de velocidade.
Você usa standardUserDefaults (um método de classe NSUserDefaults) para obter acesso às configurações padrão do usuário padrão e você pode armazenar dados lá.
-
A seção #pragma mark intitulada Controls inclui o método de configurações de espaço reservado para conectar o botão Light Info ao controlador de visualização. Este é o método de ação que usa o qualificador IBAction.
-
A conexão do temporizador ao desenho real do visor é o método onTimer. A classe UILabel implementa uma visualização de texto somente leitura. Você pode usar esta classe para desenhar uma ou várias linhas de texto estático. Nesse caso, o bloco de código usa o método initWithFrame com CGRectMake para criar um retângulo, com a coordenada x e a coordenada y do ponto de origem do retângulo em (0, 0) e uma largura e altura especificadas (100, 30).
-
O código converte a seqüência de caracteres de falha em fallingImageView para exibição; configura a cor do texto, a fonte e a cor do plano de fundo; e ajusta o tamanho da fonte para a largura. As propriedades de fonte e textColor aplicam-se 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 endX), para velocidade e para largura (scaleW) e height (scaleH) para fallingImageView.
-
O beginAnimations: context: método inicia o bloco de animação e o método commitAnimations termina o bloco. Dentro do bloco, o código define valores de propriedade para fazer mudanças visuais que compõem a animação.
-
O método setAnimationDuration define a duração da animação e setAnimationDidStopSelector define a mensagem para enviar ao delegado de animação quando a animação pára. O delegado de animação é animationDone, que usa removeFromSuperview (um método de instância da classe UIView) para remover fallingImageView e, em seguida, usa a versão (um método de instância da classe NSAutoreleasePool) para liberar fallingImageView.
-
Finalmente, esse código possui duas instruções de marca pragma para marcar a seção como Orientação e mais duas instruções de marca de pragma acima do método didReceiveMemoryWarning para marcar essa seção como Gerenciamento de memória.
