Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » UltraLite - C- und C++-Programmierung » API-Referenz » Praktische Einführung: iPhone-Anwendung mit der C++-API erstellen

 

Lektion 7: Hinzufügen der Anzeige des Verarbeitungsfortschritts

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.

 Erstellen der Anzeige für den Verarbeitungsfortschritt

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:

  1. Wählen Sie im Document-Fenster (Apfel-0) das View-Objekt.

  2. Legen Sie im Attribute Inspector (Apfel-1) die simulierte Statusleiste mit None fest.

  3. Legen Sie die Background opacity mit 0 % fest.

  4. Deaktivieren Sie die Opaque-Einstellung.

  5. Legen Sie im Size Inspector (Apfel-3) die Breite mit 232 und die Höhe mit 44 fest.

 ♦  So fügen Sie die Fortschrittsanzeige hinzu
  1. Klicken und ziehen Sie UIProgressView aus der Library in die View.

  2. Legen Sie im Size Inspector (Apfel-3) die Position der Fortschrittsanzeige mit 26, 29 fest.

  3. Legen Sie die Breite der Fortschrittsanzeige mit 186 fest.

  4. Legen Sie im Attributes Inspector (Apfel-1) den Stil mit Bar und den Fortschritt mit null fest.

 ♦  So fügen Sie die Beschriftung hinzu
  1. Klicken und ziehen Sie UILabel aus der Bibliothek auf die Ansicht.

  2. Legen Sie im Size Inspector (Apfel-3) die Position der Beschriftung mit 14, 5 fest.

  3. Legen Sie die Größe der Beschriftung mit 210, 16 fest.

  4. Legen Sie im Attribute Inspector (Apfel-1) den Text mit Sync Progress fest.

  5. Legen Sie die Layoutausrichtung als zentriert fest.

  6. Legen Sie die Schriftart mit Helvetica fett, Größe 12 fest.

  7. Legen Sie die Textfarbe mit weiß fest.

  8. Legen Sie die Schattenfarbe mit RGB: (103, 114, 130) und 100 % Opazität fest.

 ♦  Verbinden der neuen Beschriftung und der Fortschrittsanzeige mit den Outlets
  1. Wählen Sie File's Owner im Document-Fenster.

  2. Verknüpfen Sie im Connectors Inspector (Apfel-2) den Beschriftungs-Outlet mit dem in den letzten Schritten erstellen UILabel-Objekt.

  3. Verknüpfen Sie den Fortschrittsanzeige-Outlet mit dem in den letzten Schritten erstellten UIProgressView-Objekt.

  4. 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.

 Durchführen der Synchronisation in einem Hintergrund-Thread