Comment contrôler la vue dans votre app ipad

Lors de la création de votre application iPad, vous devez inclure le code qui contrôle la vue dans cette application. L'exemple suivant app iPad est conçu pour afficher des mots de défilement vers le bas de l'écran. Après avoir ouvert le DeepThoughtsViewController.m fichier de sorte qu'il apparaît dans l'éditeur de texte, vous seriez insérer le code en gras (le code qui est pas en gras est fourni par le modèle Application View-based):

#import "DeepThoughtsViewController.h"import "Constants.h"implementation DeepThoughtsViewControllervitesse desynthesize, imageView-#pragma mark -#pragma marque Voir le cycle de vie/ * // L'initialisation désignée. Substituer pour effectuer la configuration qui est requise avant que la vue est loaded.- (id) initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil {if (self = [super initWithNibName: bundle nibNameOrNil: nibBundleOrNil]) {// personnalisée initialisation} return auto - *} // * // Mise en place loadview de créer une hiérarchie de vue programmation, sans l'aide d'un (void) loadview nib.- {} * // * // Mise en place viewDidLoad faire configuration supplémentaire après le chargement de la vue, généralement à partir d'un nib.- (void) viewDidLoad {[super viewDidLoad] -} * /- (void) {viewDidLoad [super viewDidLoad] - [NSTimer scheduledTimerWithTimeInterval: 0,5 cible: auto sélecteur:selector (ontimer) userInfo: néant répétitions: OUI] - if ([[NSUserDefaults standardUserDefaults] objectForKey: kWordsOfWisdom]!) {[[NSUserDefaults standardUserDefaults] setObject: @"Groovy Peace Love Musique" forKey: kWordsOfWisdom] -fallingWords = @"Groovy Peace Love Musique"- }  else {fallingWords = [[NSUserDefaults standardUserDefaults] stringForKey: kWordsOfWisdom] - } if ([[NSUserDefaults standardUserDefaults] objectForKey: kSpeed]!) {[[NSUserDefaults standardUserDefaults] setDouble: 10,0 forKey: kSpeed] - vitesse = kMaxSpeed-10.0-}  else {vitesse = kMaxSpeed ​​- [[NSUserDefaults standardUserDefaults] doubleForKey: kSpeed] - }}#pragma mark -#pragma marque Animations- (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 = OUI- int startX = round (random ()% 400) - int EndX = round (random ()% 400) - // vitesse de chute à double randomSpeed ​​= (1 / round (random ()% 100) 1) * Speed- // taille de l'image- à double scaleH = (1 / round (random ()% 100) 1) * 60- à double scaleW = (1 / round (random ()% 100) 1) * 200 [self.view addSubview: fallingImageView] - fallingImageView.frame = CGRectMake (startX, -100, scaleW, scaleH) - fallingImageView.alpha = .75- [UIView beginAnimations: contexte néant: fallingImageView] - [UIView setAnimationDuration: randomSpeed] - [UIView setAnimationDelegate: auto] - [UIView setAnimationDidStopSelector:selector (animationDone: fini: contexte:)] - fallingImageView.frame = CGRectMake (EndX, self.view.frame.size.height, scaleW, scaleH) - [UIView commitAnimations] -}-(void) animationDone: (NSString *) animationID terminé: (NSNumber *) Contexte fini: (id) {contexte UIImageView * fallingImageView = contextuelle [fallingImageView removeFromSuperview] - [communiqué fallingImageView] -}#pragma mark -#pragma mark Controls- (Paramètres) {IBAction}#pragma mark -#pragma marque Orientation// Dépassement de permettre orientations autres que le shouldAutorotateToInterfaceOrientation portrait défaut orientation.- (booléen): (UIInterfaceOrientation) {return interfaceOrientation OUI-}#pragma mark -#pragma gestion marque de mémoire- (void) {// didReceiveMemoryWarning libère la vue si elle ne dispose pas d'un superview [super didReceiveMemoryWarning] -. // libérer toutes les données mises en cache, les images, etc. qui ne sont pas en cours d'utilisation.} - (void) {// viewDidUnload Relâchez toute sous-vues de la vue principale .// par exemple retenu self.myOutlet = nil -} - (void) dealloc {[super dealloc] -} @ end

Voici une ventilation du code que vous ajoutez:

  • La première déclaration que vous ajoutez les importations Constants.h fichier. Vous pouvez maintenant utiliser toutes les clés que vous définissez avec NSUserDefaults dans le code à la suite de récupérer les paramètres de l'utilisateur.

  • Objective-C crée les méthodes d'accès dont vous avez besoin pour vous chaque fois que vous incluez un synthesize Instruction- la déclaration dans le code précédent crée une méthode d'accès pour chaque property déclaration (vitesse et imageView).

  • Les deux # Pragma marque déclarations contiennent l'initialisation et la charge vue code.

  • La viewDidLoad message est envoyé juste après le point de vue a été chargé à partir du fichier nib (la .XIB le fichier que vous pouvez modifier dans Interface Builder). Ceci est l'endroit où vous insérez votre code pour une vue initialisation, ce qui signifie dans ce cas l'affichage relevant les paroles de DeepThoughts. La viewDidLoad la méthode que vous avez inséré commence par la mise en place d'une minuterie pour l'intervalle entre chaque affichage de la baisse des mots.

    Vous utilisez le NSTimer classe pour créer des minuteries. Une minuterie attend jusqu'à un certain intervalle de temps est écoulé, puis les incendies, l'envoi d'un message donné à un objet cible. Utilise ce code scheduledTimerWithTimeInterval: cible: sélecteur: userInfo: répétitions: méthode de classe pour créer la minuterie et le calendrier sur la boucle d'exécution actuel dans le mode par défaut. L'intervalle est de 0,5 secondes, la cible est soi, et le sélecteur est le message à envoyer à la cible lorsque les feux de la minuterie - dans ce cas, au chronomètre. La informations utilisateur est l'information de l'utilisateur pour la minuterie (réglé sur nul), Et la minuterie est réglée à répéter - autrement dit, il va se reporter à plusieurs reprises jusqu'à ce que invalidé.

  • Ensuite, le code vérifie pour voir si le kWordsOfWisdom paramètre a été déplacé dans NSUserDefaults.

  • Le code déplace les préférences de l'utilisateur en NSUserDefaults seulement après l'application est exécutée pour la première fois. Si les paramètres ne sont pas déplacés dans NSUserDefaults pourtant, le code utilise la valeur de préférence initiale ("Peace Love Groovy Music") pour fallingWords. Si les paramètres ont été déplacés dans NSUserDefaults, le code les lit et puis ensembles fallingWords à tout ce que la préférence de l'utilisateur est. Le code se répète alors cette vérification avec le vitesse réglage.

    Tu utilises standardUserDefaults (un NSUserDefaults méthode de classe) pour accéder aux paramètres utilisateur standard par défaut, et vous pouvez stocker des données là.

  • La #pragma marque section intitulée Contrôles le procédé comporte des paramètres de l'espace réservé pour la connexion sur le bouton Info Lumière pour le contrôleur de vue. C'est le action Procédé utilisant le IBAction qualificatif.


  • Raccordement de la minuterie pour le dessin réel de l'affichage est le au chronomètre Procédé. La UILabel classe implémente une vue de texte en lecture seule. Vous pouvez utiliser cette classe pour tracer un ou plusieurs lignes de texte statique. Dans ce cas, le bloc de code utilise la initWithFrame Procédé avec CGRectMake pour créer un rectangle, avec les coordonnées x et y coordonnées du point d'origine du rectangle (0, 0) et une largeur spécifiée et la hauteur (100, 30).

  • Le code convertit la fallingWords chaîne à fallingImageView pour Display- met en place la couleur du texte, la police, et le fond couleur- et ajuste la taille de la police pour la largeur. La police et textColor propriétés appliquent à l'ensemble de la chaîne de texte.

  • Le bloc de code suivant utilise la fonction aléatoire pour les points de départ et de fin (startX et EndX), Pour la vitesse, et pour la largeur (scaleW) Et la hauteur (scaleH) pour fallingImageView.

  • La beginAnimations: contexte: méthode commence le bloc d'animation, et de la commitAnimations méthode termine le bloc. A l'intérieur du bloc, le code définit les valeurs de propriété de faire des changements visuels qui composent l'animation.

  • La setAnimationDuration méthode définit la durée de l'animation, et setAnimationDidStopSelector définit le message à envoyer au délégué de l'animation lorsque animation se fige. Le délégué de l'animation est animationDone, qui utilise removeFromSuperview (une méthode d'instance de la UIView classe) pour enlever fallingImageView puis utilise libération (une méthode d'instance de la NSAutoreleasePool classe) pour libérer fallingImageView.

  • Enfin, ce code a deux # Pragma marque déclarations pour marquer la section comme Orientation et deux autres # Pragma marque les états ci-dessus didReceiveMemoryWarning méthode pour marquer cet article que la gestion mémoire.


» » » » Comment contrôler la vue dans votre app ipad