In der Apple-Dokumentation heißt es (derzeit) ...
Vermeiden Sie bei Verwendung der UIVisualEffectView-Klasse Alpha-Werte, die kleiner als 1 sind.
und
Wenn Sie das Alpha in der visuellen Effektansicht oder einer der Übersichtsansichten auf weniger als 1 einstellen, sehen viele Effekte falsch aus oder werden überhaupt nicht angezeigt.
Ich glaube, hier fehlt ein wichtiger Kontext ...
Ich würde vorschlagen, dass die Absicht darin besteht, Alpha-Werte zu vermeiden, die für eine dauerhafte Ansicht kleiner als 1 sind. Meiner bescheidenen Meinung nach gilt dies nicht für die Animation einer Ansicht.
Mein Punkt - Ich würde vorschlagen, dass Alpha-Werte unter 1 für Animationen akzeptabel sind.
Die Terminalnachricht lautet:
UIVisualEffectView wird aufgefordert, seine Deckkraft zu animieren. Dadurch wird der Effekt unterbrochen, bis die Deckkraft auf 1 zurückkehrt.
Wenn Sie dies sorgfältig lesen, scheint der Effekt unterbrochen zu sein. Meine Punkte zu diesem Wesen:
- Die offensichtliche Unterbrechung ist nur für eine Ansicht von Bedeutung, die hartnäckig ist - sich nicht ändert.
- Eine dauerhafte / unveränderliche
UIVisualEffectAnsicht mit einem Alpha-Wert von weniger als 1 wird nicht wie von Apple beabsichtigt / entworfen angezeigt. und
- Die Nachricht im Terminal ist kein Fehler, sondern nur eine Warnung.
Um die Antwort von @ jrturton oben zu erweitern, die mir bei der Lösung meines Problems geholfen hat, würde ich hinzufügen ...
UIVisualEffectVerwenden Sie zum Ausblenden den folgenden Code (Objective-C):
UIView.animateWithDuration(1.0, animations: {
// EITHER...
self.blurEffectView.effect = UIBlurEffect(nil)
// OR...
self.blurEffectView.alpha = 0
}, completion: { (finished: Bool) -> Void in
self.blurEffectView.removeFromSuperview()
} )
Ich verwende erfolgreich beide Methoden: Setzen der effectEigenschaft auf nilund Setzen der alphaEigenschaft auf 0.
Beachten Sie, dass durch Setzen von effectto nilam Ende der Animation ein "schöner Blitz" (aus Mangel an einer besseren Beschreibung) erzeugt wird , während durch Setzen von alphato 0ein reibungsloser Übergang erzeugt wird.
(Lassen Sie mich alle Syntaxfehler wissen ... Ich schreibe in obj-c.)