更改标签栏中第一张图片的 Alpha SWIFT
Change alpha of the first image in tabbar SWIFT
我正在使用 ESTabBarController 构建 TabBar。我需要访问第一个 imageView 来更改它的 alpha
,每次它是 selectedItem
。顺便说一下,tabbarcontroller 在 UINavigationController 下。我可以得到一些帮助吗?如果需要,我可以提供代码。我试图在 selectedIndex
的 didSet
上更改 alpha
我试过了
navigationController.tabBarController.tabBar.compactMap{[=15=] as? UIImageView}.first.alpha = 1
这个 returns 一个零。
可以使用以下内容:
tabBarController?.tabBar.items?[i].image.alpha = // Your value
ESTabBarController
实际上是您想要做的事情的完美框架等等,我只是因为您的问题才看了一下!所以,下面的代码肯定会按照您的预期进行。将它放入一个新的单视图应用程序 ViewController.swift
并自己尝试。
您可以通过更改 ExampleBasicContentView
自定义处于选中状态的第二个按钮。如果你想让所有 TabBarItems 的行为相同,添加 ExampleBasicContentView()
作为初始化器的第一个参数,就像我为第二个项目所做的那样。
import UIKit
import ESTabBarController
class ViewController: ESTabBarController {
override func viewDidLoad() {
super.viewDidLoad()
let v1 = ExampleViewController()
let v2 = ExampleViewController()
let v3 = ExampleViewController()
let v4 = ExampleViewController()
let v5 = ExampleViewController()
v1.tabBarItem = ESTabBarItem.init(title: "Home", image: UIImage(named: "home"), selectedImage: UIImage(named: "home_1"))
v2.tabBarItem = ESTabBarItem.init(ExampleBasicContentView(), title: "Find", image: UIImage(named: "find"), selectedImage: UIImage(named: "find_1"))
v3.tabBarItem = ESTabBarItem.init(title: "Photo", image: UIImage(named: "photo"), selectedImage: UIImage(named: "photo_1"))
v4.tabBarItem = ESTabBarItem.init(title: "Favor", image: UIImage(named: "favor"), selectedImage: UIImage(named: "favor_1"))
v5.tabBarItem = ESTabBarItem.init(title: "Me", image: UIImage(named: "me"), selectedImage: UIImage(named: "me_1"))
tabBar.shadowImage = nil
viewControllers = [v1, v2, v3, v4, v5]
}
}
class ExampleBasicContentView: ESTabBarItemContentView {
override init(frame: CGRect) {
super.init(frame: frame)
highlightIconColor = iconColor.withAlphaComponent(0.4)
highlightTextColor = textColor.withAlphaComponent(0.4)
}
public required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
我正在使用 ESTabBarController 构建 TabBar。我需要访问第一个 imageView 来更改它的 alpha
,每次它是 selectedItem
。顺便说一下,tabbarcontroller 在 UINavigationController 下。我可以得到一些帮助吗?如果需要,我可以提供代码。我试图在 selectedIndex
didSet
上更改 alpha
我试过了
navigationController.tabBarController.tabBar.compactMap{[=15=] as? UIImageView}.first.alpha = 1
这个 returns 一个零。
可以使用以下内容:
tabBarController?.tabBar.items?[i].image.alpha = // Your value
ESTabBarController
实际上是您想要做的事情的完美框架等等,我只是因为您的问题才看了一下!所以,下面的代码肯定会按照您的预期进行。将它放入一个新的单视图应用程序 ViewController.swift
并自己尝试。
您可以通过更改 ExampleBasicContentView
自定义处于选中状态的第二个按钮。如果你想让所有 TabBarItems 的行为相同,添加 ExampleBasicContentView()
作为初始化器的第一个参数,就像我为第二个项目所做的那样。
import UIKit
import ESTabBarController
class ViewController: ESTabBarController {
override func viewDidLoad() {
super.viewDidLoad()
let v1 = ExampleViewController()
let v2 = ExampleViewController()
let v3 = ExampleViewController()
let v4 = ExampleViewController()
let v5 = ExampleViewController()
v1.tabBarItem = ESTabBarItem.init(title: "Home", image: UIImage(named: "home"), selectedImage: UIImage(named: "home_1"))
v2.tabBarItem = ESTabBarItem.init(ExampleBasicContentView(), title: "Find", image: UIImage(named: "find"), selectedImage: UIImage(named: "find_1"))
v3.tabBarItem = ESTabBarItem.init(title: "Photo", image: UIImage(named: "photo"), selectedImage: UIImage(named: "photo_1"))
v4.tabBarItem = ESTabBarItem.init(title: "Favor", image: UIImage(named: "favor"), selectedImage: UIImage(named: "favor_1"))
v5.tabBarItem = ESTabBarItem.init(title: "Me", image: UIImage(named: "me"), selectedImage: UIImage(named: "me_1"))
tabBar.shadowImage = nil
viewControllers = [v1, v2, v3, v4, v5]
}
}
class ExampleBasicContentView: ESTabBarItemContentView {
override init(frame: CGRect) {
super.init(frame: frame)
highlightIconColor = iconColor.withAlphaComponent(0.4)
highlightTextColor = textColor.withAlphaComponent(0.4)
}
public required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}