In der vorherigen Lektion haben Sie eine einfache Synchronisation hinzugefügt, die auf dem Haupt-Thread abgearbeitet wurde. Das Blockieren des Haupt-Threads auf diese Weise wird nicht empfohlen. In dieser Lektion verschieben Sie die Synchronisation in einen Hintergrund-Thread und fügen eine Beobachtungsmethode für die Synchronisation hinzu, um eine Fortschrittsanzeige zu aktualisieren.
Synthetisieren Sie die Eigenschaften in der Implementierung und fügen Sie einen Freigabeaufruf in der dealloc-Methode hinzu. Öffnen Sie ProgressToolbarViewController durch Doppelklicken auf ProgressToolbarViewController.xib im Xcode Resources-Ordner. Da diese Ansicht in einer Symbolleiste angezeigt wird, müssen Sie sie entsprechend dimensionieren und ihre Hintergrundeigenschaften festlegen:
Wählen Sie im Document-Fenster (Apfel-0) das View-Objekt.
Legen Sie im Attribute Inspector (Apfel-1) die simulierte Statusleiste mit None fest.
Legen Sie die Background opacity mit 0 % fest.
Deaktivieren Sie die Opaque-Einstellung.
Legen Sie im Size Inspector (Apfel-3) die Breite mit 232 und die Höhe mit 44 fest.
Klicken und ziehen Sie UIProgressView aus der Library in die View.
Legen Sie im Size Inspector (Apfel-3) die Position der Fortschrittsanzeige mit 26, 29 fest.
Legen Sie die Breite der Fortschrittsanzeige mit 186 fest.
Legen Sie im Attributes Inspector (Apfel-1) den Stil mit Bar und den Fortschritt mit null fest.
Klicken und ziehen Sie UILabel aus der Bibliothek auf die Ansicht.
Legen Sie im Size Inspector (Apfel-3) die Position der Beschriftung mit 14, 5 fest.
Legen Sie die Größe der Beschriftung mit 210, 16 fest.
Legen Sie im Attribute Inspector (Apfel-1) den Text mit Sync Progress fest.
Legen Sie die Layoutausrichtung als zentriert fest.
Legen Sie die Schriftart mit Helvetica fett, Größe 12 fest.
Legen Sie die Textfarbe mit weiß fest.
Legen Sie die Schattenfarbe mit RGB: (103, 114, 130) und 100 % Opazität fest.
Wählen Sie File's Owner im Document-Fenster.
Verknüpfen Sie im Connectors Inspector (Apfel-2) den Beschriftungs-Outlet mit dem in den letzten Schritten erstellen UILabel-Objekt.
Verknüpfen Sie den Fortschrittsanzeige-Outlet mit dem in den letzten Schritten erstellten UIProgressView-Objekt.
Speichern Sie die XIB-Datei und schließen Sie den Interface Builder.
Diese Ansicht wird der Symbolleiste von RootViewController hinzugefügt. Das DataAccess-Objekt benutzt jedoch auch einen Verweis darauf, um den Fortschritt der Synchronisation anzuzeigen. Fügen Sie die folgende Instanzvariable hinzu:
ProgressToolbarViewController * progressToolbar; |
Fügen Sie die Eigenschaft der DataAccess-Klasse hinzu:
@property (retain, readwrite) IBOutlet ProgressToolbarViewController * progressToolbar; |
Importieren Sie den ProgressToolbarViewController-Header zur Synthetisierung der Eigenschaft in der Implementierung. Um die Fortschrittsanzeige der Symbolleiste hinzuzufügen, fügen Sie folgenden Code der viewDidLoad-Methode von RootViewController hinzu:
// Create progress display ProgressToolbarViewController * progress = [[ProgressToolbarViewController alloc] initWithNibName:@"ProgressToolbarViewController" bundle:nil]; // Register the toolbar with the DataAccess [[DataAccess sharedInstance] setProgressToolbar:progress]; // Setup UIBarButtonItems UIBarButtonItem * space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; UIBarButtonItem * progressButtonItem = [[UIBarButtonItem alloc] initWithCustomView:progress.view]; // Put them in the toolbar self.toolbarItems = [NSArray arrayWithObjects:space, progressButtonItem, space, nil]; [space release]; [progressButtonItem release]; |
RootViewController verfügt nun über eine Fortschrittsanzeige in seiner Symbolleiste, auch wenn die Symbolleiste verborgen ist. Im nächsten Abschnitt werden Sie die Synchronisation in einen Hintergrund-Thread verschieben und den Fortschrittsbalken während der Synchronisation anzeigen.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |