I am trying to make a blurred background the UITabBar
for my UITabViewController
, and the idea is to have it be blurred and transparent so that the views underneath can be seen scrolling by.
Unfortunately I cannot for the life of me get the tab bar to be transparent. No matter what I do, there is always some black background to the tab bar that prevents the underlying view controllers from showing through.
If I change the alpha of the UITabBar
to something low I can see that the tableview is indeed behind it, however you can see that the UITabBar
has some sort of background to it that is preventing the tableview from fully showing through (and I don't want to bar button items to be invisible, just the tab bar background).
How can this be?
In the custom tab bar's view did load I have:
self.tabBar.translucent = true
self.tabBar.alpha = 0.3
self.tabBar.backgroundColor = UIColor.clearColor().colorWithAlphaComponent(0.0)
self.tabBar.layer.backgroundColor = UIColor.clearColor().colorWithAlphaComponent(0.0).CGColor
self.tabBar.backgroundImage = nil
self.tabBar.shadowImage = nil
and in the AppDelegate I have:
UITabBar.appearance().barTintColor = UIColor.clearColor()
UITabBar.appearance().tintColor = kColorAccent
UITabBar.appearance().translucent = true
UITabBar.appearance().translucent = true
UITabBar.appearance().backgroundColor = UIColor.clearColor()
UITabBar.appearance().backgroundImage = nil
UITabBar.appearance().layer.backgroundColor = UIColor.clearColor().CGColor
UITabBar.appearance().shadowImage = nil
...yeah It's excessive but I want to try everything.
Any ideas on what to do?
Make a UITabBar transparent
Assign a clear image to its
backgroundImage
. You can use a 1x1 clear.png, or create one programmatically:This will make the
UITabBar
transparent:Add a blur effect
Insert a
UIVisualEffectView
as the rearmost subview.This will insert a
UIBlurEffect
(frost):Example
UITabBar
of the Tab Bar Controller toFrostyTabBar
.clearColor
image. You can create a clear.png image with an alpha of 0. A programmatic elegant solution is described here.UIVisualEffectView
, you can in turn supply anyUIVisualEffect
you so desire.The entire
FrostyTabBar
class looks like this:► Find this solution on GitHub and additional details including a 1x1 clear.png on Swift Recipes.
I found a prefect solution, you only need to subclass UITabBar and then do the following actions to clean that annoying views
imageWithColor was replaced by jotImage
the only solution that worked for me was this:
and set: (you can do this in storyboard as well)
but what i have to set in storyboard is: