2017-03-16 4 views
5

In der Snapchat-App ändert sich die Statusleiste in Alpha, wenn eine Tabellenansicht zum Neuladen nach unten gezogen wird.Ändern der Statusleiste alpha

Dies ist die normale Statusleiste This is the normal status bar

Dies ist, was passiert, wenn die Tabellenansicht nach unten gezogen wird enter image description here

Wie wird die Statusleiste alpha verändert? Und wie wird der Rahmen verändert? Ursprünglich dachte ich, es wäre ein Schnappschuss, aber die Uhr ändert sich wie normal.

Antwort

8

Dies sollte den Trick für die Fade-Animation tun:

/* Swift 3 */ 

let statusBarWindow = UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow 
UIView.animate(withDuration: 2) { 
    statusBarWindow?.alpha = 0.2 
} 

/* Objective-C */ 

UIWindow *statusBarWindow = (UIWindow *)[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"]; 
[UIView animateWithDuration:2.f 
       animations:^{ [statusBarWindow setAlpha:0.2]; } 
       completion:nil]; 

Sie können auch statusBarWindow des frame und verschieben Sie sie einstellen, wie Sie wollen. Viel Spaß;]

+0

Sind Sie sicher, dass dies durch den App-Store-Review geht? Hast du Beweise? – lukwuerz

+1

Hallo @lufritz! Wenn Sie sich Sorgen um den privaten Schlüssel machen, können Sie einfach versuchen, 2 Teilstrings zu erstellen und ihnen beizutreten. Habe es einmal gemacht und die Prüfung bestanden, nachdem zuvor mit einer einzigen Zeichenfolge abgelehnt worden war. Niemand wird Ihren Code manuell überprüfen und der Analysator wird nicht alle möglichen Kombinationen prüfen. Das Projekt ist unter NDA und kann Ihnen nicht zeigen. P.S. Ich habe private Klassen/Schlüssel nur ein paar Mal benutzt, wenn es keinen anderen Weg gibt und der Kunde etwas so schnell wie möglich erledigen wollte. Es ist unsicher, solche Sachen in der Produktion zu machen. –

0

Sie greifen höchstwahrscheinlich entweder in das Fenster, in dem sich die Statusleiste befindet, und animieren das oder sie platzieren ein Fenster über der Statusleiste mit einer Ansicht und animieren das. Ich muss die App nicht überprüfen, aber es muss eine dieser beiden Methoden sein. Um ein Fenster oberhalb der Statusleiste zu platzieren, denke ich, dass es window.windowLevel = UIWindowLevelStatusBar + 1 ist, so dass es über Ihrer Statusleiste liegt. Wenn sie die Referenz greifen, müssen Sie die Anwendungsfenster durchlaufen, um sie zu finden, und ich habe nie versucht, das Fenster der Statusleiste zu finden, aber ich habe das Tastaturfenster gepackt. Wenn die Uhr tatsächlich heruntergezogen wird, könnte es eine Kombination von sowohl dem Holen des Fensters, in dem sich die Statusleiste befindet, als auch dem Hinzufügen eines Fensters oben und dem Animieren von beiden sein. Facebook packt das Tastaturfenster, um es in Facebook Messenger nach oben zu scrollen. Hoffe das hilft dir.

Bearbeiten: Ich habe ein Beispiel für das Abrufen der Statusleiste Fenster here gefunden.

Auch ich würde CA CAnimations empfehlen und vermeiden, wirklich etwas zu ändern. Verwenden Sie einfach die Animationen, um diese Erscheinung zu geben.

Verwandte Themen