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

roh*_*inb 13 objective-c uitabbar ios

我试图让我的标签栏阴影看起来像这个图像中看到的那样:

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

Shr*_*ank 15

您可以通过将以下代码用于任何UI对象来提供阴影

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

这里我给你的tabControl对象举了一个例子.


Ham*_*ari 9

对于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
Run Code Online (Sandbox Code Playgroud)


小智 7

斯威夫特4:

tabBar.layer.shadowOffset = CGSize(width: 0, height: 0)
tabBar.layer.shadowRadius = 2
tabBar.layer.shadowColor = UIColor.black.cgColor
tabBar.layer.shadowOpacity = 0.3
Run Code Online (Sandbox Code Playgroud)


Sof*_*ner 5

我更喜欢使用专用的标签栏方法。

// Set `backgroundImage` to be able to use `shadowImage`
let tabBarAppearance = UITabBar.appearance()

if #available(iOS 15.0, *) {
    let appearance = UITabBarAppearance()

    appearance.shadowImage = UIImage(named: "tab_shadow")
    tabBarAppearance.standardAppearance = appearance
    tabBarAppearance.scrollEdgeAppearance = appearance
} else {
    tabBarAppearance.backgroundImage = UIImage.imageWithColor(.white)
    tabBarAppearance.shadowImage = #imageLiteral(resourceName: "tab_bar_shadow") // 2x34pt works for me
}
Run Code Online (Sandbox Code Playgroud)