我正在尝试让我的选项卡栏阴影看起来像这个图像中看到的:
最好的方法是什么?我正在使用Objective-C
谢谢
我正在尝试让我的选项卡栏阴影看起来像这个图像中看到的:
最好的方法是什么?我正在使用Objective-C
谢谢
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 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
我更喜欢使用专门的选项卡栏方法。
// 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
}
Swift 4:
使用这个扩展
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))
colorForNavBar
方法。 - Alexey Savchenkoself.tabBarController.tabBar.shadowImage = [[UIImage alloc] init];
self.tabBarController.tabBar.backgroundImage = [[UIImage alloc] init];
self.tabBarController.tabBar.backgroundColor = [UIColor whiteColor];
self.tabBarController.tabBar.layer.shadowOffset = CGSizeMake(0, 0);
self.tabBarController.tabBar.layer.shadowRadius = 1;
self.tabBarController.tabBar.layer.shadowColor = [UIColor blackColor].CGColor;
self.tabBarController.tabBar.layer.shadowOpacity = 0.2;
试试这个
[[UITabBar appearance] setShadowImage:[UIImage imageNamed:@"transparentShadow.png"]];