So steuern Sie die Ansicht in Ihrem iPad App

Wenn Sie Ihr iPad App erstellen, müssen Sie den Code zu enthalten, die die Sicht in dieser Anwendung steuert. Das folgende Beispiel iPad-App ist so konzipiert, Wörter auf den Bildschirm nach unten scrollen anzuzeigen. Nach der Eröffnung DeepThoughtsViewController.m Datei, so dass es in dem Text-Editor angezeigt wird, würden Sie den Code in Fett einfügen (der Code, der nicht in fett ist durch die View-Based Application Template mitgeliefert):

#import "DeepThoughtsViewController.h"#Import "constants.h"@implementation DeepThoughtsViewController@synthesize Geschwindigkeit, imageView-#pragma mark -Pragma Zeichen anzeigen Lebenszyklus/ * // Der designierte initializer. Außer Kraft setzen Setup durchzuführen, die erforderlich ist, bevor die Ansicht loaded.- ist (id) initWithNibName: (NSString *) nibNameOrNil Bundle: (NSBundle *) nibBundleOrNil {if (self = [super initWithNibName: nibNameOrNil Bundle: nibBundleOrNil]) {// Benutzerdefinierte Initialisierung} return selbst -} * // * // Loadview Implementieren Sie eine Ansichtshierarchie programmatisch zu erstellen, ohne eine nib.- (void) loadview mit {} * // * // viewDidLoad implementieren zusätzliche Einrichtung zu tun, nachdem die Ansicht laden, typischerweise aus einem nib.- (void) viewDidLoad {[super viewDidLoad] -} * /- (Void) {viewDidLoad  [Super viewDidLoad] - [NSTimer scheduledTimerWithTimeInterval: 0,5 Ziel: Selbstwähler: @selector (OnTimer) userinfo: null Wiederholungen: YES] - if ([[NSUserDefaults standardUserDefaults] objectForKey: kWordsOfWisdom]!) {[[NSUserDefaults standardUserDefaults] setObject: @"Peace Love Groovy Musik" forKey: kWordsOfWisdom] -fallingWords = @"Peace Love Groovy Musik"- }  else {fallingWords = [[NSUserDefaults standardUserDefaults] stringForKey: kWordsOfWisdom] - } if ([[NSUserDefaults standardUserDefaults] objectForKey: kSpeed]!) {[[NSUserDefaults standardUserDefaults] setDouble: 10.0 forKey: kSpeed] - Geschwindigkeit = kMaxSpeed-10.0-}  else {= KMaxSpeed ​​Geschwindigkeit - [[NSUserDefaults standardUserDefaults] doubleForKey: kSpeed] - }}#pragma mark -#pragma mark-Animation- (Void) {OnTimer  UILabel * fallingImageView = [[UILabel Alloc] Initwithframe: CGRectMake (0, 0, 100, 30)] - fallingImageView.text = fallingWords- fallingImageView.textColor = [UIColor purple] -  fallingImageView.font = [UIFont systemFontOfSize: 30] - fallingImageView.backgroundColor = [UIColor Clear] -   fallingImageView.adjustsFontSizeToFitWidth = JA-  int startX = round (random ()% 400) - int ENDX = round (random ()% 400) - // Geschwindigkeit des Fallens Doppel randomSpeed ​​= (1 / Runde (random ()% 100) + 1) * Speed- // Bildgröße- Doppel scaleH = (1 / Runde (random ()% 100) + 1) * 60- Doppel scaleW = (1 / Runde (random ()% 100) + 1) * 200-  [Self.view addSubview: fallingImageView] -  fallingImageView.frame = CGRectMake (startX, -100, scaleW, scaleH) -  fallingImageView.alpha = .75-  [UIView beginAnimations: nil Kontext: fallingImageView] - [UIView setAnimationDuration: randomSpeed] - [UIView setAnimationDelegate: self] - [UIView setAnimationDidStopSelector: @selector (animationDone: fertig: Kontext:)] -  fallingImageView.frame = CGRectMake (ENDX, self.view.frame.size.height, scaleW, scaleH) -  [UIView commitAnimations] -}-(Void) animationDone: (NSString *) animationID beendet: (NSNumber *) fertigen Kontext: (id) {Kontext UIImageView * fallingImageView = kontext- [FallingImageView removeFromSuperview] - [FallingImageView release] -}#pragma mark -#pragma mark Kontrollen- (IBAction) Einstellungen {}#pragma mark -#pragma mark OrientierungAußer Kraft setzen // Orientierungen zu ermöglichen, andere als die Standard Portrait orientation.- (BOOL) ShouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {return JA-}#pragma mark -Pragma Marke Memory Management- (Void) {// didReceiveMemoryWarning Mitteilungen die Ansicht, wenn es nicht einen Super hat [super didReceiveMemoryWarning.] - // Lassen Sie alle zwischengespeicherten Daten, Bilder, etc., die nicht in Gebrauch sind.} - (Void) {// ViewDidUnload Lassen Sie alle aufbewahrten Subviews des Haupt view.// zB self.myOutlet = nil -} - (void) dealloc {[super dealloc] -} @ end

Hier ist eine Aufschlüsselung der Code, den Sie hinzufügen:

  • Die erste Anweisung fügen Sie importiert die constants.h Datei. Sie können nun alle Schlüssel verwenden Sie NSUserDefaults in den nachfolgenden Code einrichten, um die Benutzereinstellungen abgerufen werden.

  • Objective-C erstellt die Accessormethoden Sie für die Sie benötigen, wenn Sie eine Include @synthesize die Aussage im vorhergehenden Code Anweisung- schafft für die jeweils ein Accessormethode @Eigentum Erklärung (Geschwindigkeit und Imageview).

  • Die Zwei # Pragma Zeichen Aussagen enthalten, die Initialisierung und Last-View-Code.

  • Das viewDidLoad Nachricht wird direkt nach der Ansicht von der Nib-Datei gesendet (die geladen wurde .xib Datei, die Sie im Interface Builder ändern können). Dies ist der Ort, an dem Sie Ihren Code für Ansicht Initialisierung einfügen, die in diesem Fall bedeutet, DeepThoughts 'fallen Wörter anzeigt. Das viewDidLoad Verfahren Sie beginnt eingefügt durch einen Timer für das Intervall zwischen jeder Anzeige von fallenden Worte einrichten.

    Sie verwenden die NSTimer Klasse Timer zu erstellen. Ein Zeitgeber wartet, bis ein bestimmtes Zeitintervall verstrichen ist, und dann feuert, eine festgelegte Nachricht an ein Zielobjekt gesendet wird. Dieser Code verwendet scheduledTimerWithTimeInterval: Ziel: Selektor: userinfo: Wiederholungen: Klassenmethode den Timer und planen sie auf dem aktuellen Laufschleife in den Standardmodus zu erstellen. Das Intervall beträgt 0,5 Sekunden das Ziel selbst, und der Selektor ist die Nachricht an das Ziel zu senden, wenn der Zeitgeber ausgelöst - in diesem Fall OnTimer. Das Benutzerinformation der Benutzer-Info für das Timer (auf Null), Und der Timer wird auf wiederholen - Das heißt, es wiederholt sich, bis invalidierten neu planen.

  • Als nächstes prüft der Code, um zu sehen, ob der kWordsOfWisdom Einstellung wurde verschoben in NSUserDefaults.

  • Der Code wird die Präferenzen des Benutzers in NSUserDefaults erst nach der Anwendung läuft zum ersten Mal. Wenn die Einstellungen nicht in verschoben NSUserDefaults noch verwendet der Code den ursprünglichen Präferenzwert ( "Peace Love Groovy Music") für fallingWords. Wenn die Einstellungen wurden verschoben in NSUserDefaults, der Code liest sie in und dann Sätze fallingWords auf das, was ist die Präferenz des Nutzers. Der Code wird dann wiederholt diese Prüfung mit dem Geschwindigkeit Rahmen.

    Sie nutzen standardUserDefaults (ein NSUserDefaults Klassenmethode) Zugriff auf die Standard-Benutzerstandardeinstellungen zu gewinnen, und Sie können dort Daten speichern.

  • Das #pragma mark Abschnitt mit dem Titel Steuerung enthält den Platzhalter-Einstellungen Methode für das Licht Info-Taste, um den View-Controller anschließen. Dies ist das Aktion Verfahren unter Verwendung der IBAction Qualifier.

  • Verbinden der Timer auf die tatsächlichen Zeichnung der Anzeige wird die OnTimer Verfahren. Das UILabel Klasse implementiert eine schreibgeschützte Textansicht. Sie können diese Klasse verwenden Sie eine oder mehrere Zeilen von statischen Text zu zeichnen. In diesem Fall verwendet der Code-Block der Initwithframe Verfahren mit CGRectMake ein Rechteck, wobei die x-Koordinate und y-Koordinate des Rechtecks ​​Ursprungspunkt bei (0, 0) und eine bestimmte Breite und Höhe (100, 30) zu schaffen.

  • Der Code konvertiert die fallingWords Zeichenfolge fallingImageView für Display- setzt die Textfarbe, Schriftart und Hintergrund farb- und passt die Schriftgröße für die Breite auf. Das Schriftart und Textfarbe Eigenschaften gelten für die gesamte Textzeichenfolge.

  • Der nächste Block von Code verwendet die Zufallsfunktion für die Start- und Endpunkte (startX und ENDX), Für die Geschwindigkeit und für die Breite (scaleW) Und Höhe (scaleH) für fallingImageView.

  • Das beginAnimations: Kontext: Verfahren startet die Animation Block, und die commitAnimations Verfahren beendet den Block. Im Inneren des Blocks, legt der Code Eigenschaftswerte visuelle Änderungen vorzunehmen, die die Animation enthalten.

  • Das setAnimationDuration Methode setzt die Animation Dauer und setAnimationDidStopSelector stellt die Nachricht an die Animation Delegierten zu senden, wenn Animation stoppt. Die Animation ist Delegierter animationDone, die verwendet removeFromSuperview (Eine Instanz Methode der UIView Klasse) zu entfernen fallingImageView und verwendet dann Freisetzung (Eine Instanz Methode der NSAutoreleasePool Klasse) freizugeben fallingImageView.

  • Schließlich hat dieser Code zwei # Pragma Zeichen Aussagen über den Abschnitt als Orientierung zu markieren und zwei weitere # Pragma Zeichen Aussagen über die didReceiveMemoryWarning Verfahren diesen Abschnitt als Speicherverwaltung zu markieren.

Menü