2014-09-29 3 views
12

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

+0

К сожалению, не видел этого по какой-то причине. - Благодаря тому, что проект github для игры был очень полезен, спасибо. – matt

ответ

20

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

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

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

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

произведет вид таблицы, как это:

enter image description here

+0

Почему они реализовали эту функцию, если она просто заставляет вялые и добрые времена замедляться? –

+0

Какие у вас есть доказательства вашей теории? @ItzhakIra –

+0

Я действительно реализовал ваш точный проект, и его прекрасный я могу добавить. Но почему-то мои скепы медленнее обычного и вялого. –

4

Начать просмотр сеанса 419 с WWDC этого года: «Advanced Graphics and Animations for iOS Apps», они объясняют, как работают новые классы визуальных эффектов.

У меня есть 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

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

+0

Я не сказал, что не знал, как работают новые классы визуальных эффектов. Я знаю. Я не понимаю, что делает UITableView 'separatorEffect'. Я не вижу, чтобы он делал что-либо в моих тестах, и я не вижу, чтобы он делал что-либо на вашем снимке экрана. – matt

+0

Вот почему я предложил вам посмотреть сеанс WWDC, упомянутый выше. Я добавил еще один снимок экрана, показывающий, как выглядит представление без эффекта разделителя. –

1

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

enter image description here

enter image description here

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