Cómo controlar el punto de vista de su aplicación para iPad

Al crear su aplicación para iPad, debe incluir el código que controla la vista en esa aplicación. El siguiente ejemplo aplicación para iPad está diseñada para mostrar las palabras de desplazamiento por la pantalla. Después de abrir la DeepThoughtsViewController.m archivo para que aparezca en el editor de texto, que había insertar el código en negrita (el código que no está en negrita es suministrada por el View-Basado plantilla Aplicación):

import "DeepThoughtsViewController.h"import "Constants.h"implementation DeepThoughtsViewControllervelocidadsynthesize, imageView-marca pragma -marca pragma ciclo de vida Ver/ * // El inicializador designado. Reemplazar a realizar la configuración que se requiere antes de la vista es loaded.- (id) initWithNibName: (NSString *) nibNameOrNil paquete: (NSBundle *) nibBundleOrNil {if (auto = [súper initWithNibName: haz nibNameOrNil: nibBundleOrNil]) {// personalizada inicialización} return self -} * // * // Implementar loadView para crear una jerarquía de vistas mediante programación, sin necesidad de utilizar un (void) loadView nib.- {} * // * // Implementar viewDidLoad hacer configuración adicional después de cargar la vista, típicamente de un nib.- (void) viewDidLoad {[súper viewDidLoad] -} * /- (void) {viewDidLoad [súper viewDidLoad] - [NSTimer scheduledTimerWithTimeInterval: 0.5 de destino: Selector auto:selector (OnTimer) userInfo: nil repite: SÍ] - si ([[NSUserDefaults standardUserDefaults] objectForKey: kWordsOfWisdom]!) {[[NSUserDefaults standardUserDefaults] setObject: @"Peace Love Groovy Music" forKey: kWordsOfWisdom] -fallingWords = @"Peace Love Groovy Music"- }  else {fallingWords = [[NSUserDefaults standardUserDefaults] stringForKey: kWordsOfWisdom] - } si ([[NSUserDefaults standardUserDefaults] objectForKey: kSpeed]!) {[[NSUserDefaults standardUserDefaults] setDouble: 10.0 forKey: kSpeed] - velocidad = kMaxSpeed-10.0-}  else {velocidad = kMaxSpeed ​​- [[NSUserDefaults standardUserDefaults] doubleForKey: kSpeed] - }}marca pragma -#pragma marca de Animación- (void) {OnTimer 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 = sí- int startX = round (random ()% 400) - int EndX = round (random ()% 400) - // velocidad de caída doble RandomSpeed ​​= (1 / vuelta (random ()% 100) 1) * velocidad- // tamaño de la imagen- doble scaleH = (1 / vuelta (random ()% 100) 1) * 60 doble scaleW = (1 / vuelta (random ()% 100) 1) * 200 [addSubview self.view: 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 (EndX, self.view.frame.size.height, scaleW, scaleH) - [UIView commitAnimations] -}-(void) animationDone: (NSString *) animationID terminado: (NSNumber *) contexto terminado: (id) contexto { UIImageView * fallingImageView = contexto- [fallingImageView removeFromSuperview] - [liberación fallingImageView] -}marca pragma -Controles marca pragma- (IBAction) ajustes {}marca pragma -#pragma mark Orientación// Reemplazar para permitir orientaciones distintas de la shouldAutorotateToInterfaceOrientation orientation.- retrato defecto (BOOL): (UIInterfaceOrientation) interfaceOrientation {return sí-}marca pragma -#pragma Gestión de memoria marca- (void) didReceiveMemoryWarning {// Libera la vista si no tiene un supervista [súper didReceiveMemoryWarning] -. // liberar cualquier datos almacenados en caché, imágenes, etc., que no están en uso.} - (void) {// viewDidUnload Suelte cualquier subvistas de la vista principal .// ejemplo retenidas self.myOutlet = nil -} - (void) dealloc {[súper dealloc] -} @ final

He aquí un desglose del código se agrega:

  • La primera declaración se agrega las importaciones Constants.h archivo. Ahora puede utilizar las claves configuradas con NSUserDefaults en el código posterior para recuperar la configuración de usuario.

  • Objective-C crea los métodos de acceso que necesita para usted cuando usted incluye una synthesize Sentencia- la declaración en el código anterior crea un método de acceso para cada property declaración (velocidad y imageView).

  • Los dos # Marca pragma declaraciones contienen el código de inicialización y carga-view.

  • los viewDidLoad mensaje se envía inmediatamente después de la vista se ha cargado desde el archivo de punta (el .xib archivo que se puede modificar en el Interface Builder). Este es el lugar donde se inserta el código de inicialización de vista, que en este caso significa que muestra la caída de palabras DeepThoughts. los viewDidLoad método que ha insertado comienza estableciendo un temporizador para el intervalo entre cada pantalla de la caída de palabras.

    Se utiliza el NSTimer clase para crear temporizadores. Un temporizador de espera hasta que haya transcurrido un intervalo de tiempo determinado y luego los fuegos, el envío de un mensaje especificado a un objeto de destino. Este código utiliza scheduledTimerWithTimeInterval: objetivo: Selector: userinfo: repite: método de clase para crear el temporizador y programar en el bucle de ejecución actual en el modo por defecto. El intervalo es de 0,5 segundos, el objetivo es sí mismo, y el selector es el mensaje para enviarlo a la meta cuando se dispara el temporizador - en este caso, OnTimer. los informacion de usuario es la información del usuario para el temporizador (ajustado a nulo), Y el temporizador se establece en repetir - es decir, se repetidamente reprogramar sí mismo hasta invalidada.

  • A continuación, el código comprueba para ver si el kWordsOfWisdom ajuste se ha trasladado a NSUserDefaults.

  • El código mueve las preferencias del usuario en NSUserDefaults sólo después de que se ejecuta la aplicación por primera vez. Si los ajustes no se han movido en NSUserDefaults sin embargo, el código utiliza el valor de preferencia inicial ("Peace Love Groovy Music") para fallingWords. Si la configuración se han movido en NSUserDefaults, el código de las lee y luego conjuntos fallingWords a lo que la preferencia del usuario es. El código se repite esta comprobación con el velocidad ajuste.

    Tu usas standardUserDefaults (un NSUserDefaults método de clase) para acceder a la configuración predeterminada de usuario estándar, y puede almacenar los datos allí.

  • los marca pragma sección titulada Controles incluye el método de configuración de marcador de posición para conectar el botón Info Luz al controlador de vista. Este es el acción método que utiliza el IBAction calificador.

  • Conexión del temporizador al dibujo real de la pantalla es la OnTimer método. los UILabel clase implementa una vista de texto de sólo lectura. Puede utilizar esta clase para dibujar una o varias líneas de texto estático. En este caso, el bloque de código utiliza el initWithFrame método con CGRectMake para crear un rectángulo, con las coordenada x y coordenada y del punto de origen del rectángulo en (0, 0) y un ancho especificado y la altura (100, 30).

  • El código convierte la fallingWords cadena a fallingImageView para la pantalla y el establece el color del texto, la fuente, y el fondo de color- y ajusta el tamaño de fuente para el ancho. los fuente y color de texto propiedades se aplican a toda la cadena de texto.

  • El siguiente bloque de código utiliza la función aleatoria de los puntos inicial y final (startX y EndX), Para la velocidad, y para la anchura (scaleW) Y la altura (scaleH) para fallingImageView.

  • los beginAnimations: Contexto: método comienza el bloque de animación, y la commitAnimations método termina el bloque. Dentro del bloque, el código establece los valores de propiedad para hacer cambios visuales que componen la animación.

  • los setAnimationDuration método establece la duración de la animación, y setAnimationDidStopSelector establece el mensaje a enviar al delegado animación cuando la animación se detiene. El delegado de animación es animationDone, que utiliza removeFromSuperview (un método de instancia del UIView clase) para eliminar fallingImageView y luego utiliza lanzamiento (un método de instancia del NSAutoreleasePool clase) para liberar fallingImageView.

  • Por último, este código tiene de dos # Marca pragma declaraciones para marcar la sección como Orientación y dos más # Marca pragma declaraciones por encima de la didReceiveMemoryWarning método para marcar esa sección como administración de memoria.




» » » » Cómo controlar el punto de vista de su aplicación para iPad