Skip to content

Instantly share code, notes, and snippets.

@mavieth
Created April 1, 2019 00:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mavieth/78afdab575dff90e32ea8d360b9e74eb to your computer and use it in GitHub Desktop.
Save mavieth/78afdab575dff90e32ea8d360b9e74eb to your computer and use it in GitHub Desktop.
Swift TabsController
import UIKit
import Material
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func applicationDidFinishLaunching(_ application: UIApplication) {
window = UIWindow(frame: Screen.bounds)
window!.rootViewController = AppTabsController(viewControllers: [BlueViewController(),
BrownViewController(),
GreenViewController()])
window!.makeKeyAndVisible()
}
}
import UIKit
import Material
class AppTabsController: TabsController {
open override func prepare() {
super.prepare()
tabBar.setLineColor(Color.orange.base, for: .selected) // or tabBar.lineColor = Color.orange.base
tabBar.setTabItemsColor(Color.grey.base, for: .normal)
tabBar.setTabItemsColor(Color.purple.base, for: .selected)
tabBar.setTabItemsColor(Color.green.base, for: .highlighted)
tabBar.tabItems.first?.setTabItemColor(Color.blue.base, for: .selected)
// let color = tabBar.tabItems.first?.getTabItemColor(for: .selected)
// tabBarAlignment = .top
// tabBar.tabBarStyle = .auto
// tabBar.dividerColor = nil
// tabBar.lineHeight = 5.0
// tabBar.lineAlignment = .bottom
// tabBar.backgroundColor = Color.blue.darken2
}
}
import UIKit
import Material
class BlueViewController: UIViewController {
let v1 = UIView()
open override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = Color.blue.base
prepareTabItem()
v1.motionIdentifier = "v1"
v1.backgroundColor = Color.red.base
view.layout(v1).width(100).vertically().right()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("Blue viewWillAppear")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("Blue viewDidAppear")
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
print("Blue viewWillDisappear")
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
print("Blue viewDidDisappear")
}
}
extension BlueViewController {
fileprivate func prepareTabItem() {
tabItem.title = "Blue"
// tabItem.image = Icon.pen
tabItem.setTabItemImage(Icon.add, for: .normal)
tabItem.setTabItemImage(Icon.pen, for: .selected)
tabItem.setTabItemImage(Icon.photoLibrary, for: .highlighted)
}
}
import UIKit
import Material
class BrownViewController: UIViewController {
let v1 = UIView()
open override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = Color.brown.base
prepareTabItem()
v1.motionIdentifier = "v1"
v1.backgroundColor = Color.red.base
view.layout(v1).centerHorizontally().bottom().width(300).height(300)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("Brown viewWillAppear")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("Brown viewDidAppear")
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
print("Brown viewWillDisappear")
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
print("Brown viewDidDisappear")
}
}
extension BrownViewController {
fileprivate func prepareTabItem() {
tabItem.title = "Brown"
}
}
import UIKit
import Material
class GreenViewController: UIViewController {
let v1 = UIView()
open override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = Color.green.base
prepareTabItem()
v1.motionIdentifier = "v1"
v1.backgroundColor = Color.red.base
view.layout(v1).bottom().horizontally().height(100)
}
}
extension GreenViewController {
fileprivate func prepareTabItem() {
tabItem.title = "Green"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment