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")
}
}
person
unixb0y
schedule
14.09.2019