Как говорится в названии, существует ли способ оживить радиус размытия UIVisualEffectView? У меня динамический фон за представлением, поэтому дополнение ImageEffects не может быть использовано... Единственное, что может сделать это, насколько я знаю, - это оживить непрозрачность, но iOS жалуется на то, что это делает разрывы EffectView, поэтому он определенно кажется плохой идеей... Любая помощь была бы с удовольствием оценена.
Анимация UIVisualEffectView Blur Radius?
Ответ 1
Ответ: да. Вот пример анимации без размытия → размытие:
// When creating your view...
let blurView = UIVisualEffectView()
// Later, when you want to animate...
UIView.animateWithDuration(1.0) { () -> Void in
blurView.effect = UIBlurEffect(style: .Dark)
}
Анимирует радиус размытия от нуля (полностью прозрачный или, скорее, эффект размытия) до радиуса по умолчанию (полностью размытого) в течение одной секунды. И сделать обратную анимацию:
UIView.animateWithDuration(1.0) { () -> Void in
blurView.effect = nil
}
Полученные анимации плавно изменяют радиус размытия, даже если вы фактически добавляете/удаляете эффект размытия - UIKit просто знает, что делать за кулисами.
Обратите внимание, что это не всегда возможно: до недавнего времени (не уверен, когда) UIVisualEffectView должен был инициализироваться с помощью UIVisualEffect, а свойство effect
было доступно только для чтения. Теперь effect
является необязательным и read/write (хотя документация не обновляется...), а UIVisualEffectView включает пустой инициализатор, позволяющий нам выполнять эти анимации.
Единственное ограничение состоит в том, что вы не можете вручную назначить произвольный радиус размытия UIVisualEffectView - вы можете анимировать только между "без размытия" и "полностью размытым".
EDIT: В случае, если кто-то заинтересован, я создал подкласс UIVisualEffectView
, который дает вам полный контроль над радиусом размытия. Предостережение заключается в том, что он использует частный UIKit
API, поэтому вы, вероятно, не должны отправлять приложения для просмотра, используя его. Тем не менее, это все еще интересно и полезно для прототипов или внутренних приложений:
https://github.com/collinhundley/APCustomBlurView