iOS-在UITabBar上方获得所需阴影

iOS-在UITabBar上方获得所需阴影,ios,objective-c,uitabbar,Ios,Objective C,Uitabbar,我正在尝试使我的选项卡栏阴影看起来与此图中所示的一样: 这样做的最佳方式是什么?我正在使用objective-c 谢谢试试这个 [[UITabBar appearance] setShadowImage:[UIImage imageNamed:@"transparentShadow.png"]]; 您可以使用以下代码为任何UI对象提供阴影 tabBar.layer.shadowOffset = CGSize(width: 0, height: 0) tabBar.layer.shadowR

我正在尝试使我的选项卡栏阴影看起来与此图中所示的一样:

这样做的最佳方式是什么?我正在使用objective-c
谢谢

试试这个

 [[UITabBar appearance] setShadowImage:[UIImage imageNamed:@"transparentShadow.png"]];

您可以使用以下代码为任何UI对象提供阴影

tabBar.layer.shadowOffset = CGSize(width: 0, height: 0)
tabBar.layer.shadowRadius = 2
tabBar.layer.shadowColor = UIColor.black.cgColor
tabBar.layer.shadowOpacity = 0.3
这里我给出了tabControl对象的示例。

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

我更喜欢使用专用的选项卡栏方法

// Set `backgroundImage` to be able to use `shadowImage`
tabBar.backgroundImage = UIImage.imageWithColor(.white)
tabBar.shadowImage = #imageLiteral(resourceName: "tab_bar_shadow") // 2x34pt works for me

对于Swift 5:

tabBar.layer.shadowOffset = CGSize(width: 0, height: 0)
tabBar.layer.shadowRadius = 2
tabBar.layer.shadowColor = UIColor.black.cgColor
tabBar.layer.shadowOpacity = 0.3
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
使用此扩展名

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!
    } 
}
使用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))

谢谢,这正是我想要的。如果有人想知道,为了让它看起来像那个图像,我使用了8的阴影半径和0.3的阴影不透明度。再次感谢你!请解释
colorForNavBar
方法。@AlexeySavchenko扩展添加了。。。!