Frage

Ich baue eine App mit Bildbeobachtungsfunktionen. Ich habe das UiscrollView -Tier zu Boden gerungen (hoffe, mein Scrollview -Wissen RSN zu veröffentlichen) und versuche jetzt, einige der anderen visuellen Effekte der iPhone -Fotos -App zu duplizieren. Insbesondere möchte ich beim Betrachten eines Bildes die Steuerelemente und Balken auflösen.

Ich habe eine Methode, die die Sichtbarkeit der Statusleiste, der Navigationsleiste und der Registerkartenleiste umschaltet und nur die Scrollview mit einem Bild lässt. Die Scrollview ist Vollbildschirm. Ich habe einen Timer, der 3 Sekunden nach dem Benutzer ausfeuert (einzeln auf den Bildschirm, anzeigt das nächste Bild usw.) und in der Timerfired -Methode meine Methode aufrufe, um die Balken auszuschalten. Ein einzelner Tipp des Bildschirms schaltet die Balken ein. Hier ist die Methode, um den Vollbildstatus umzuschalten.

- (void)setFullScreen:(BOOL)fullScreen {
    // reset the timer
    [myTimer invalidate];
    [myTimer release];
    myTimer = nil;

    // start animation section
    [UIView beginAnimations:nil context:nil];
        // toggle the status bar    
        [[UIApplication sharedApplication] setStatusBarHidden:fullScreen animated:YES];
        [UIView setAnimationDuration:UINavigationControllerHideShowBarDuration];
        CGFloat alpha = fullScreen ? 0.0 : 1.0;
        // change the alpha to either 0 or 1 based on hiding or showing the bars
        self.navigationController.navigationBar.alpha = alpha;
        self.tabBarController.tabBar.alpha = alpha;

    // do the animations!
    [UIView commitAnimations];

    // restart the timer after we show the bars    
    if (!fullScreen) {
        myTimer = [[NSTimer timerWithTimeInterval:3.0 target:self selector:@selector(timerFired:) userInfo:nil repeats:NO] retain];
        [[NSRunLoop currentRunLoop] addTimer:myTimer forMode:NSDefaultRunLoopMode];
    }
}

Dies funktioniert im Grunde, aber es sieht nicht so gut aus wie die Fotos -App. Ich zeichne die Alpha -Werte an, da ich glaube, dass dies eher der Fotos -App als der versteckten Animationsmethoden aussieht. Mein Problem ist das Gleiche für die Statusleiste.

Meine Fragen: (1) Gibt es eine UIView für die Statusleiste? (2) Gibt es eine Möglichkeit, die Alpha -Eigenschaft der Statusleiste zu ändern? (3) Ist die Statusbar in einem anderen UIWindow? (4) Gibt es eine andere Möglichkeit, dies mit "rechtlichen" Methoden zu erreichen (ich muss diese App in den App Store einfügen)?

Ich habe die Windows -Eigenschaft der UIApplication abgeladen und es gab nur 1 Fenster und ich habe die Aussichtshierarchie gekrabbt und es gab keine offensichtliche Ansicht für die Statusleiste.

irgendwelche Ideen?

War es hilfreich?

Lösung

Die Statusleiste wird von Springboard selbst erstellt, sie ist der Klasse sbstatusbar (die IIRC von UIWindow erbt). Es ist für App Store -Anwendungen nicht zugänglich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top