La documentazione di Apple (attualmente) afferma ...
Quando si utilizza la classe UIVisualEffectView, evitare valori alfa inferiori a 1.
e
L'impostazione dell'alfa su un valore inferiore a 1 nella vista degli effetti visivi o in una qualsiasi delle sue superview fa sì che molti effetti sembrino errati o non vengano visualizzati affatto.
Credo che qui manchi un contesto importante ...
Suggerirei che l'intento è quello di evitare valori alfa inferiori a 1 per una visualizzazione persistente. A mio modesto parere questo non si applica all'animazione di una vista.
Il mio punto: suggerirei che i valori alfa inferiori a 1 siano accettabili per le animazioni.
Il messaggio del terminale afferma:
A UIVisualEffectView viene chiesto di animare la sua opacità. In questo modo l'effetto apparirà interrotto fino a quando l'opacità non torna a 1.
Leggendo con attenzione, sarà l'effetto appare essere rotto. I miei punti su questo essere:
- l'apparente rottura conta davvero solo per una visione che è persistente - non cambia;
- una visualizzazione persistente / immutabile
UIVisualEffect
con un valore alfa inferiore a 1 non si presenterà come previsto / progettato da Apple; e
- il messaggio nel terminale non è un errore, solo un avvertimento.
Per estendere la risposta di @ jrturton sopra che mi ha aiutato a risolvere il mio problema, aggiungerei ...
Per sfumare, UIVisualEffect
utilizzare il seguente codice (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()
} )
Uso con successo entrambi i metodi: impostando la effect
proprietà su nil
e impostando la alpha
proprietà su 0
.
Notare che l'impostazione di effect
a nil
crea un "bel flash" (in mancanza di una descrizione migliore) alla fine dell'animazione, mentre l'impostazione di alpha
a 0
crea una transizione graduale.
(Fammi sapere eventuali errori di sintassi ... scrivo in obj-c.)