Ark*_*ken 5 uitabbarcontroller uitabbar ios swift
我正在尝试使我的标签栏控制器中的标签栏具有低不透明度背景,因此它是半透明的,我正在尝试以编程方式执行此操作,但是背景更改为正确的颜色,但始终显示为纯色,没有透明度。
这是我的 TabBarViewController 中的代码
class TabBarViewController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
self.tabBar.unselectedItemTintColor = UIColor(red: 17.0/255.0, green: 70.0/255.0, blue: 95.0/255.0, alpha: 0.4)
self.tabBar.barTintColor = UIColor(red: 17.0/255.0, green: 70.0/255.0, blue: 95.0/255.0, alpha: 0.5)
// Do any additional setup after loading the view.
}
}
Run Code Online (Sandbox Code Playgroud)
对于这种情况,您应该生成一个自定义UIImage的标签栏backgroundimage属性。
让我们假设您的标签栏所需的颜色 - 应该是透明的 - 是黑色,您可以在您的自定义中实现UITabBarController:
class TabBarViewController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
let transperentBlackColor = UIColor(displayP3Red: 0, green: 0, blue: 0, alpha: 0.5)
let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
transperentBlackColor.setFill()
UIRectFill(rect)
if let image = UIGraphicsGetImageFromCurrentImageContext() {
tabBar.backgroundImage = image
}
UIGraphicsEndImageContext()
}
}
Run Code Online (Sandbox Code Playgroud)
所以,作为输出,如果我们假设你的视图控制器的背景颜色是蓝色,它应该看起来像:

如图所示,标签栏不是纯黑色的,它包含预期的透明度 (0.5)。
此外,为了检查如何生成纯色UIImage,您可以检查这个 SO 答案:在 Swift 中使用纯色创建 UIImage。
只需替换barTintColor为backgroundColor.
override func viewDidLoad() {
super.viewDidLoad()
self.tabBar.unselectedItemTintColor = UIColor(red: 17.0/255.0, green: 70.0/255.0, blue: 95.0/255.0, alpha: 0.4)
self.tabBar.backgroundColor = UIColor(red: 17.0/255.0, green: 70.0/255.0, blue: 95.0/255.0, alpha: 0.5)
// Do any additional setup after loading the view.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6329 次 |
| 最近记录: |