La documentación de Apple (actualmente) dice ...
Cuando use la clase UIVisualEffectView, evite valores alfa que sean menores que 1.
y
Establecer el alfa en menos de 1 en la vista de efectos visuales o cualquiera de sus supervistas hace que muchos efectos se vean incorrectos o no se muestren en absoluto.
Creo que aquí falta un contexto importante ...
Sugeriría que la intención es evitar valores alfa inferiores a 1 para una vista persistente. En mi humilde opinión, esto no se aplica a la animación de una vista.
Mi punto: sugeriría que los valores alfa inferiores a 1 son aceptables para las animaciones.
El mensaje del terminal dice:
Se solicita a UIVisualEffectView que anime su opacidad. Esto hará que el efecto parezca roto hasta que la opacidad vuelva a 1.
Al leer esto con atención, el efecto parecerá estar roto. Mis puntos sobre este ser:
- la ruptura aparente sólo importa realmente para una visión que es persistente, no cambia;
- una vista persistente / invariable
UIVisualEffect
con un valor alfa inferior a 1 no se presentará según lo previsto / diseñado por Apple; y
- el mensaje en la terminal no es un error, solo una advertencia.
Para extender la respuesta de @jrturton anterior que me ayudó a resolver mi problema, agregaría ...
Para atenuar el UIVisualEffect
uso del siguiente código (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()
} )
Utilizo con éxito ambos métodos: estableciendo la effect
propiedad en nil
y estableciendo la alpha
propiedad en 0
.
Tenga en cuenta que al configurar el effect
para nil
crear un "flash agradable" (a falta de una mejor descripción) al final de la animación, mientras que el establecer el alpha
para 0
crea una transición suave.
(Avíseme cualquier error de sintaxis ... escribo en obj-c.)