New in iOS 8 is a separatorEffect
property, to which you are allowed to assign a UIVisualEffect. Has anyone figured out what this is for? I've tried it and I don't see it as having any, uh, visual effect.

- 515,959
- 87
- 875
- 1,141
-
Sorry, didn't see this for some reason. - Having the github project to play with was a big help, thanks. – matt Apr 25 '15 at 15:20
3 Answers
I was wondering the exact same thing so I put a Github project together for anyone facing the same issue.
The basic idea is that if your tableView's backgroundView consists of a UIVisualEffectView
with a blur effect, then setting the seperatorEffect
to a Vibrant Effect with the same blur as the UIVisualEffectView
will produce the effect we see in Notification Center where the separators seem transparent.
Something like this:
tableView.separatorEffect = UIVibrancyEffect(forBlurEffect: blurredBackgroundView.blurView.effect as UIBlurEffect)
will produce a table view like this:

- 23,617
- 8
- 77
- 97
-
why did they implement this feature if it just makes the segues sluggish and kind've slow? – John Jackson Sep 19 '15 at 08:03
-
-
i actually implemented your exact project, and its beautiful i may add. But for some reason, my segues are slower the usual and sluggish. – John Jackson Sep 19 '15 at 08:05
-
You need to profile your app in instruments to see exactly why that is but I don't think it has anything to do with seperators... @ItzhakIra – Daniel Galasko Sep 19 '15 at 08:06
-
well when i remove the separatorEffect, the segues are at there normal pace.. I mean its pretty weird, in Xcode 6 i didn't have the issue.. what would u suggest i do? – John Jackson Sep 19 '15 at 08:08
-
Wow! That's really fascinating. I don't have any suggestions unfortunately. Assuming you have tested this on an actual device? @ItzhakIra maybe ask a new question or file a bug – Daniel Galasko Sep 19 '15 at 08:10
-
yes on an actual device, i've read that a blur view doesn't like to be animated.. is there any truth to that? – John Jackson Sep 19 '15 at 08:12
-
Depends how you are animating it. I know it's hairy when you animate the opacity... @ItzhakIra – Daniel Galasko Sep 19 '15 at 08:14
-
Start by watching session 419 from this year's WWDC: "Advanced Graphics and Animations for iOS Apps", they explain how the new visual effect classes work.
I have a UITableViewController in my app that I use as a modal popover. The parent view controller gets blurred by a UIVisualEffectView with a UIBlurEffect, while the table view separators have a UIVibrancyEffect set as effect. On my iPhone 5, it looks like this:
This is what that same view looks like if separatorEffect is nil:
You could, of course, apply a UIBlurEffect to the separators, but that would most likely just be a waste of resources.
Note: Don't actually do what I did in this example. UIVibrancyEffect is very expensive. Just applying a UIVibrancyEffect to this table view's separators caused my app to miss the 60 FPS target on an iPhone 5.
Also note that the Reduce Transparency option under the Accessibility section in Settings.app is a thing and causes UIBlurEffects to be rendered as a solid color. Always check before instancing any UIVisualEffects. Here's some keywords for you to google: UIAccessibilityIsReduceTransparencyEnabled()
and UIAccessibilityReduceTransparencyStatusDidChangeNotification
Hope I could help you.

- 2,323
- 4
- 22
- 42
-
I didn't say I didn't know "how the new visual effect classes work". I do know. What I don't understand is what the UITableView `separatorEffect` does. I don't see it doing anything in my tests, and I don't see it doing anything in your screen shot either. – matt Oct 06 '14 at 21:31
-
That's why I suggested you watch the WWDC session mentioned above. I've added another screenshot showing how the view looks like with no separator effect. – Peter W. Oct 06 '14 at 22:23
As both answers have said, the only effect this is intended for is a vibrancy effect when the background of the table is a blur effect. The difference with and without the effect can be subtle:

- 515,959
- 87
- 875
- 1,141