2015-01-22 2 views
5

Есть ли способ изменить эффект на UIVisualEffectView? В моем приложении я создаю UIVisualEffectView в раскадровки, а затем я хочу, чтобы изменить его toLight или Dark на UserSettings ...Изменение эффекта на UIVisualEffectView

Я вижу только «initWithEffect» и свойство «эффект» только для чтения :(

Таким образом, любая идея о том, как решить эту проблему?

Спасибо, Urkman

ответ

0

к сожалению, вы не можете изменить эффект зрения, как только создается.

Так что, если вы используете UIVi sualEffectsView как контейнер для просмотра hierarcy, вам нужно будет заменить вид эффектов новым, созданным с другим эффектом, и переместить вашу иерархию в новый контейнер.

Если вы используете UIVisualEffectsView, чтобы размыть все просмотры позади него, вы можете, например, создать как размытые виды в вашем раскадровке, установить одну из них в скрытую, так и сменить их скрытые состояния в соответствии с пользовательскими настройками.

6

На самом деле есть возможность сделать это!

myVisualEffectView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; 

Вы можете анимировать это!

[UIView animateWithDuration:1.0 animations:^{ 
    myVisualEffectView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight]; 
}]; 

Вы даже можете размывать размытие, добавить и удалить - почти как в Spotlight reaveal на Springboard! Просто установите стиль в nil для постепенного удаления эффекта размытия.

Смежные вопросы