iOS - Getting desired shadow above UITabBar

2019-03-25 13:16发布

I am trying to get my tab bar shadow to look like the one seen in this image:

What is the best way of doing this? I am using objective-c
Thanks

6条回答
一纸荒年 Trace。
2楼-- · 2019-03-25 13:28

For Swift 4 :

self.tabBarController?.tabBar.layer.shadowColor = UIColor.black.cgColor
self.tabBarController?.tabBar.layer.shadowOffset = CGSize(width: 0.0, height: 1.0)
self.tabBarController?.tabBar.layer.shadowRadius = 5
self.tabBarController?.tabBar.layer.shadowOpacity = 1
self.tabBarController?.tabBar.layer.masksToBounds = false
查看更多
beautiful°
3楼-- · 2019-03-25 13:37

Try This one

 [[UITabBar appearance] setShadowImage:[UIImage imageNamed:@"transparentShadow.png"]];
查看更多
贪生不怕死
4楼-- · 2019-03-25 13:39

I'd prefer to use a dedicated tab bar methods.

// Set `backgroundImage` to be able to use `shadowImage`
tabBar.backgroundImage = UIImage.imageWithColor(.white)
tabBar.shadowImage = #imageLiteral(resourceName: "tab_bar_shadow") // 2x34pt works for me
查看更多
劫难
5楼-- · 2019-03-25 13:44

You can give shadow by using following code to any UI object

tabControl.layer.shadowOffset = CGSizeMake(0, 0);
tabControl.layer.shadowRadius = 2;
tabControl.layer.shadowColor = [UIColor blackColor].CGColor;
tabControl.layer.shadowOpacity = 0.3;

Here i gave example for your tabControl object.

查看更多
闹够了就滚
6楼-- · 2019-03-25 13:50

Swift 4:

Use This Extension

extension UIImage {
class func colorForNavBar(color: UIColor) -> UIImage {
    //let rect = CGRectMake(0.0, 0.0, 1.0, 1.0)

    let rect = CGRect(origin: CGPoint(x: 0,y :0), size: CGSize(width: 1.0, height: 1.0))

    UIGraphicsBeginImageContext(rect.size)
    let context = UIGraphicsGetCurrentContext()

    context!.setFillColor(color.cgColor)
    context!.fill(rect)

    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()


     return image!
    } 
}

Set Shadow Color Using RGB

//Set BackgroundColor
 UITabBar.appearance().backgroundImage = UIImage.colorForNavBar(color: .white)

//Set Shadow Color
 UITabBar.appearance().shadowImage = UIImage.colorForNavBar(color: UIColor.init(red: 120/255.0, green: 120/255.0, blue: 120/255.0, alpha: 1.0))
查看更多
7楼-- · 2019-03-25 13:51

Swift 4:

tabBar.layer.shadowOffset = CGSize(width: 0, height: 0)
tabBar.layer.shadowRadius = 2
tabBar.layer.shadowColor = UIColor.black.cgColor
tabBar.layer.shadowOpacity = 0.3
查看更多
登录 后发表回答