Dokumentacja Apple (obecnie) stwierdza ...
Korzystając z klasy UIVisualEffectView, unikaj wartości alfa, które są mniejsze niż 1.
i
Ustawienie alfa na mniej niż 1 w widoku efektu wizualnego lub w którymkolwiek z jego podglądów nadzoru powoduje, że wiele efektów wygląda nieprawidłowo lub w ogóle się nie pojawia.
Uważam, że brakuje tu jakiegoś ważnego kontekstu ...
Sugerowałbym, aby celem było unikanie wartości alfa, które są mniejsze niż 1 dla trwałego widoku. Moim skromnym zdaniem nie dotyczy to animacji widoku.
Moja uwaga - sugerowałbym, że wartości alfa mniejsze niż 1 są dopuszczalne dla animacji.
Komunikat terminala stwierdza:
UIVisualEffectView jest proszony o animowanie jego krycia. Spowoduje to, że efekt będzie wyglądał na uszkodzony, dopóki krycie nie powróci do 1.
Czytając to uważnie, efekt wydaje się zepsuty. Moje uwagi na ten temat:
- pozorna przerwa ma znaczenie tylko w przypadku poglądu, który jest trwały - nie zmienia się;
- trwały / niezmienny
UIVisualEffect widok z wartością alfa mniejszą niż 1 nie będzie się prezentował zgodnie z zamierzeniami / projektami Apple; i
- komunikat w terminalu nie jest błędem, tylko ostrzeżeniem.
Aby rozszerzyć powyższą odpowiedź @ jrturton, która pomogła mi rozwiązać problem, dodam ...
Aby zaniknąć UIVisualEffectużyj następującego kodu (celu-C):
UIView.animateWithDuration(1.0, animations: {
self.blurEffectView.effect = UIBlurEffect(nil)
self.blurEffectView.alpha = 0
}, completion: { (finished: Bool) -> Void in
self.blurEffectView.removeFromSuperview()
} )
Z powodzeniem używam obu metod: ustawiając effectwłaściwość na nili ustawiając alphawłaściwość na 0.
Należy pamiętać, że ustawienie effectsię niltworzy „piękny błysk” (z braku lepszego opisu) na końcu animacji, natomiast ustawienie alphana 0tworzy płynne przejście.
(Daj mi znać o wszelkich błędach składniowych ... Piszę w obj-c.)