Переключение между стилями BlurEffect'ами с помощью UISwitch


#1

Здравствуйте
Пытаюсь сделать переключение между стилями при помощи switch (светлым и тёмным). Что-то вроде переключение между светлой и тёмной темами. Подскажите, пожалуйста, как это возможно реализовать?

Спасибо)


#2

Blur - это эффект примененный к картинке, меняете картинку на светлую, применяете эффект и готово.
Можете посмотреть как это сделано в библиотеке

Тут при перелистывании картинок, фон меняется. Библиотека маленькая, простая.


#3

С картинкой не вариант.
Ощутимые изменения будут не заметны. Мне именно необходимо, чтобы стили менялись с .dark на .light, и наоборот при переключении рычажка


#4

Заголовок с блуром ваш смутил, я сперва думал вам именно бэкграунд нужно менять.
Не знаю как переключение стилей делают в мега популярных приложениях, но пока на уме такой вариант (будет много ручного кода):

  1. Создать для каждого элемента расширение, которое будет в зависимости от темы менять его стиль
  2. Завести в UserDefaults флажок, который будет хранить текущий стиль
  3. В каждом ViewController’e в методе viewWillAppear вызывать для каждого элемента расширение для смены стиля

Либо вариант менее затратный, при каждом появлении скрина: первые 2 пункта без изменений
3. При смене стиля в настройках, делать пост в NotificationCenter
4. Подписаться на локальное уведомление о смене стиля в каждом VC и при срабатывании вызывать метод, в котором будут вызываться все элементы с расширением для смены стиля.

P.S. что-то похожее на это