繁体   English   中英

在标签栏SWIFT中更改第一张图像的Alpha

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM