Что такое свойство UITableView separatorEffect?

Новое в iOS 8 является свойством separatorEffect, которому разрешено назначать UIVisualEffect. Кто-нибудь понял, для чего это? Я пробовал это, и я не вижу в нем никакого визуального эффекта.

Ответ 1

Мне интересно было то же самое, поэтому я поставил проект Github для всех, кто сталкивался с той же проблемой.

Основная идея заключается в том, что если ваш backgroundView backgroundView состоит из UIVisualEffectView с эффектом размытия, то установка seperatorEffect на эффект Vibrant с тем же размытием, что и UIVisualEffectView, приведет к эффекту, который мы видим в уведомлении Центр, где разделители кажутся прозрачными.

Что-то вроде этого:

tableView.separatorEffect = UIVibrancyEffect(forBlurEffect: blurredBackgroundView.blurView.effect as UIBlurEffect)

создаст представление таблицы следующим образом:

enter image description here

Ответ 2

Начните с просмотра сеанса 419 с этого года WWDC: "" Расширенная графика и анимация для приложений iOS", они объясняют, как новый визуальный эффект классы работают.

У меня есть UITableViewController в моем приложении, которое я использую в качестве модального popover. Контроллер родительского представления размывается UIVisualEffectView с UIBlurEffect, в то время как разделители табличных представлений имеют значение UIVibranceEffect как эффект. На моем iPhone 5 это выглядит так: Screenshot of modal popover

Это то, что выглядит тот же вид, если separatorEffect равен нулю: enter image description here

Вы могли бы, конечно, применить UIBlurEffect к разделителям, но это скорее всего будет пустой тратой ресурсов.

Примечание. На самом деле не делайте то, что я сделал в этом примере. UIVibrancyEffect очень дорогой. Просто применяя UIVibranceEffect к этой таблице, разделители таблиц заставили мое приложение пропустить цель 60 FPS на iPhone 5.

Также обратите внимание, что параметр "Уменьшить прозрачность" в разделе "Доступность" в "Настройки .app" - это вещь и вызывает отображение UIBlurEffects в виде сплошного цвета. Всегда проверяйте перед выполнением любых UIVisualEffects. Вот несколько ключевых слов для Google: UIAccessibilityIsReduceTransparencyEnabled() и UIAccessibilityReduceTransparencyStatusDidChangeNotification

Надеюсь, что смогу вам помочь.

Ответ 3

Как сказано в обоих ответах, единственным эффектом, для которого он предназначен, является эффект вибрации, когда фон таблицы является эффектом размытия. Разница с эффектом и без него может быть тонкой:

enter image description here

enter image description here