How to minimize visual flicker using iOS8 "UIVisualEffectView with Blur"

I have a specific application that, due to the navigation structure, leaves me unable to use regular UINavigationBars with transparency, so I decided to try using iOS8 UIVisualEffectView with Blur.

This solution basically works, but there is a very noticeable flickering effect that occurs when a UITableView is viewed under this blur. Since the edges of the image or color rectangle pass under the guise of blur, a significant amount of flicker occurs.

Has anyone experienced this? Does anyone know how to solve this problem?

My implementation is simple, I dragged the UIVisualEffectView onto my view controller and limited it to the top, left and right borders of the screen and added a height limit of 64. Below is just a UITableView with some images and text.

+7
ios uivisualeffectview
source share
2 answers

“I suppose that what is not under the guise is not taken into account to calculate the blur. It’s probably extrapolated (by filling the image by mirroring, replicating, wrapping, etc.), as you would to minimize boundary effects on any convolution), but in many cases this creates an undesirable visual leap.

If you want to minimize this artifact, just do a UIVisualEffectView more than your view. A few pixels are enough, the blur of the core is not so great. And make your opinion for the clip to the borders. "

Link: https://medium.com/@imho_ios/avoid-artifacts-on-uiblureffect-edges-c30e737c21fb

This worked for me, at least eliminating the bottom flicker in the navigation bar. However, he did not work from above. I believe this is related to viewing (maybe a UIWindow?) Cropping - in my case - tableView.

UPDATE: It seems that the bug is fixed in iOS 9.0 and later.

+1
source share

I am doing a uiview whose alpha is 0 and adds blurview as a subview. Therefore, I can minimize that a flashing problem can also hide / show or round corners with animation.

0
source share

All Articles