[英]How to change the color of a TabBar in Swift? Image as Background in Navigation bar?
[英]Change alpha of the first image in tabbar SWIFT
我正在使用ESTabBarController构建TabBar。 每当它是selectedItem
,我都需要访问第一个imageView来更改其alpha
值。 顺便说一下,tabbarcontroller在UINavigationController下。 我可以帮忙吗? 如果需要,我可以提供代码。 我试着去改变时,阿尔法上didSet
的的selectedIndex
我试过了
navigationController.tabBarController.tabBar.compactMap{$0 as? UIImageView}.first.alpha = 1
navigationController.tabBarController.tabBar.compactMap{$0 as? UIImageView}.first.alpha = 1
这将返回nil。
ESTabBarController
实际上是您想要执行的操作的理想框架,还有更多,由于您的问题,我只是看一下它! 因此,以下代码应该可以确定地完成您的期望。 将其插入新的单视图应用程序的ViewController.swift
然后自己尝试。
您可以通过更改ExampleBasicContentView
将第二个按钮自定义为选定状态。 如果要使所有TabBarItem的行为相同,则将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")
}
}
可以使用以下内容:
tabBarController?.tabBar.items?[i].image.alpha = // Your value
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.