Home Code-Schnipsel User Interface UIAlertView mit Aktivitätsanzeige

iPhone Gewinnspiel

UIAlertView mit Aktivitätsanzeige PDF Drucken E-Mail
Share
Geschrieben von: Philipp   
MONDAY, 12 APRIL 2010 23:01
Manchmal möchte man den Benutzer darauf hinweise, das derzeit etwas passiert und in dieser Zeit der Benutzer keinerlei Einfluß auf den Ablauf der Applikation hat.

Das iPhone SDK bietet als Aktivitätsanzeige das sich drehene Rädchen, welches man beliebig positionieren kann. Benutzereingaben können jedoch meist torzdem erfolgen. Nutzt man nun die Möglichkeit einer UIAlertView, hat man einen modalen Dialog, d.h. der Hintergrund wird abgedunckelt und kann vom Benutzer nicht mehr angetippt werden.

Diese beiden Komponenten, UIActivityIndicatorView und UIAlertView werden im folgenden Beispiel kombiniert:
- (void) closeAlertView
{
    // alertView schließen und Speicher frei geben   
    [myAlertView dismissWithClickedButtonIndex:0 animated:NO];
}

- (void) action: (UIBarButtonItem *) item
{
    // eine AlertView ohne Schaltflächen
    myAlertView = [[[UIAlertView alloc] initWithTitle:@"Bitte warten"
                                              message:nil
                                             delegate:self
                                    cancelButtonTitle:nil
                                    otherButtonTitles: nil] autorelease];
    [myAlertView show];
   
    // Erstellt die Aktivitätsanzeige und fügt sie hinzu
    UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc]
                                               initWithActivityIndicatorStyle:
                                               UIActivityIndicatorViewStyleWhiteLarge];
   
    // zentriert positionieren                               
    activityView.center = CGPointMake(myAlertView.bounds.size.width / 2.0f,
                                      myAlertView.bounds.size.height - 40.0f);
    [activityView startAnimating];
   
    // zur AlertView hinzufügen
    [myAlertView addSubview:activityView];
    [activityView release];
   
    // Entfernt die Schaltfläche automatisch nach fünf Sekunden
    [self performSelector:@selector(closeAlertView) withObject:nil afterDelay:5.0f];
}

Die AlertView wird ohne Schaltflächen erstellt und schließt sich in diesem Fall nach 5 Sekunden automatisch wieder. Da es sich bei UIAlertView um eine vererbte Klasse von UIView handelt, könnt Ihr also auch alle UIView Methoden auf die AlertView anwenden und somit auch addSubview:. Beachtet, das die AlertView mit autorelease erstellt wurde und dementsprechen nicht wieder freigegeben werden muss.


Ihren Kommentar hinzufügen

Ihr Name:
Ihre Webseite:
Betreff:
Kommentar:
  Bild, welches den Sicherheitscode enthält
Sicherheitscode:
LAST_UPDATED2