В документации Apple (в настоящее время) говорится. ..
При использовании класса UIVisualEffectView избегайте альфа-значений меньше 1.
а также
Установка альфа меньше 1 в представлении визуальных эффектов или любом из его супервизоров приводит к тому, что многие эффекты выглядят некорректно или вообще не отображаются.
Я считаю, что здесь отсутствует какой-то важный контекст ...
Я бы предположил, что цель состоит в том, чтобы избежать значений альфа, которые меньше 1 для постоянного представления. По моему скромному мнению, это не относится к анимации вида.
Моя точка зрения - я бы предположил, что для анимации приемлемы альфа-значения менее 1.
В терминальном сообщении говорится:
UIVisualEffectView просят анимировать его непрозрачность. Это приведет к тому, что эффект будет казаться нарушенным, пока непрозрачность не вернется к 1.
Если внимательно прочитать это, эффект появится будет нарушен. Мои соображения по этому поводу:
- кажущийся разрыв действительно имеет значение только для стойкого взгляда, а не для изменения;
- постоянное / неизменное
UIVisualEffect
представление с альфа-значением меньше 1 не будет отображаться так, как задумано / разработано Apple; а также
- сообщение в терминале не является ошибкой, а просто предупреждением.
Чтобы расширить ответ @ jrturton выше, который помог мне решить мою проблему, я бы добавил ...
Чтобы убрать UIVisualEffect
, используйте следующий код (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()
} )
Я успешно использую оба метода: устанавливаю для свойства effect
значение nil
и устанавливаю для свойства alpha
значение 0
.
Обратите внимание, что установка effect
на nil
создает "красивую вспышку" (из-за отсутствия лучшего описания) в конце анимации, а установка alpha
на 0
создает плавный переход.
(Сообщите мне о любых синтаксических ошибках ... Я пишу в obj-c.)
person
andrewbuilder
schedule
26.03.2016