Новое в iOS 8 является свойством separatorEffect
, которому разрешено назначать UIVisualEffect. Кто-нибудь понял, для чего это? Я пробовал это, и я не вижу в нем никакого визуального эффекта.
Что такое свойство UITableView separatorEffect?
Ответ 1
Мне интересно было то же самое, поэтому я поставил проект Github для всех, кто сталкивался с той же проблемой.
Основная идея заключается в том, что если ваш backgroundView backgroundView состоит из UIVisualEffectView
с эффектом размытия, то установка seperatorEffect
на эффект Vibrant с тем же размытием, что и UIVisualEffectView
, приведет к эффекту, который мы видим в уведомлении Центр, где разделители кажутся прозрачными.
Что-то вроде этого:
tableView.separatorEffect = UIVibrancyEffect(forBlurEffect: blurredBackgroundView.blurView.effect as UIBlurEffect)
создаст представление таблицы следующим образом:
Ответ 2
Начните с просмотра сеанса 419 с этого года WWDC: "" Расширенная графика и анимация для приложений iOS", они объясняют, как новый визуальный эффект классы работают.
У меня есть UITableViewController в моем приложении, которое я использую в качестве модального popover. Контроллер родительского представления размывается UIVisualEffectView с UIBlurEffect, в то время как разделители табличных представлений имеют значение UIVibranceEffect как эффект. На моем iPhone 5 это выглядит так:
Это то, что выглядит тот же вид, если separatorEffect равен нулю:
Вы могли бы, конечно, применить UIBlurEffect к разделителям, но это скорее всего будет пустой тратой ресурсов.
Примечание. На самом деле не делайте то, что я сделал в этом примере. UIVibrancyEffect очень дорогой. Просто применяя UIVibranceEffect к этой таблице, разделители таблиц заставили мое приложение пропустить цель 60 FPS на iPhone 5.
Также обратите внимание, что параметр "Уменьшить прозрачность" в разделе "Доступность" в "Настройки .app" - это вещь и вызывает отображение UIBlurEffects в виде сплошного цвета. Всегда проверяйте перед выполнением любых UIVisualEffects. Вот несколько ключевых слов для Google: UIAccessibilityIsReduceTransparencyEnabled()
и UIAccessibilityReduceTransparencyStatusDidChangeNotification
Надеюсь, что смогу вам помочь.
Ответ 3
Как сказано в обоих ответах, единственным эффектом, для которого он предназначен, является эффект вибрации, когда фон таблицы является эффектом размытия. Разница с эффектом и без него может быть тонкой: