ContentView.swift
//
// ContentView.swift
// Swiftuitest
//
// Created by Cairocoders
//
import SwiftUI
struct ContentView: View {
@State var index = 0
var body: some View {
VStack {
ZStack {
if self.index == 0 {
Color.green.edgesIgnoringSafeArea(.top)
VStack {
Text("Home").foregroundColor(Color.white)
Image(systemName: "house.fill")
.resizable()
.frame(width: 200, height: 200)
}
}
else if self.index == 1 {
Color.blue.edgesIgnoringSafeArea(.top)
VStack {
Text("Profile").foregroundColor(Color.white)
Image(systemName: "person.fill")
.resizable()
.frame(width: 200, height: 200)
}
}
else if self.index == 2 {
Color.red.edgesIgnoringSafeArea(.top)
VStack {
Text("Notification").foregroundColor(Color.white)
Image(systemName: "bell.fill")
.resizable()
.frame(width: 200, height: 200)
}
}
else{
Color.yellow.edgesIgnoringSafeArea(.top)
VStack {
Text("Cart").foregroundColor(Color.white)
Image(systemName: "cart.fill")
.resizable()
.frame(width: 200, height: 200)
}
}
}
CustomTabBar(index: $index)
}.animation(.spring())
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
CustomTabBar.swift
//
// CustomTabBar.swift
// Swiftuitest
//
// Created by Cairocoders
//
import SwiftUI
struct CustomTabBar : View {
@Binding var index : Int
var body: some View {
HStack(spacing: 15) {
HStack {
Image(systemName: "house.fill")
.resizable()
.frame(width: 35, height: 30)
Text(self.index == 0 ? "Home" : "")
.fontWeight(.light)
.font(.system(size:14))
}.padding(15)
.background(self.index == 0 ? Color.green.opacity(0.5) : Color.clear)
.clipShape(Capsule())
.onTapGesture {
self.index = 0
}
HStack {
Image(systemName: "person.fill")
.resizable()
.frame(width: 35, height: 30)
Text(self.index == 1 ? "Profile" : "")
.fontWeight(.light)
.font(.system(size:14))
}.padding(15)
.background(self.index == 1 ? Color.blue.opacity(0.5) : Color.clear)
.clipShape(Capsule())
.onTapGesture {
self.index = 1
}
HStack {
Image(systemName: "bell.fill")
.resizable()
.frame(width: 35, height: 30)
Text(self.index == 2 ? "Notification" : "")
.fontWeight(.light)
.font(.system(size:14))
}.padding(15)
.background(self.index == 2 ? Color.red.opacity(0.5) : Color.clear)
.clipShape(Capsule())
.onTapGesture {
self.index = 2
}
HStack {
Image(systemName: "cart.fill")
.resizable()
.frame(width: 35, height: 30)
Text(self.index == 3 ? "Cart" : "")
.fontWeight(.light)
.font(.system(size:14))
}.padding(15)
.background(self.index == 3 ? Color.yellow.opacity(0.5) : Color.clear)
.clipShape(Capsule())
.onTapGesture {
self.index = 3
}
}.padding(.top, 8)
.frame(width: UIScreen.main.bounds.width)
.background(Color.white)
.animation(.default)
}
}
struct CustomTabBar_Previews: PreviewProvider {
@State static var index = 0
static var previews: some View {
CustomTabBar(index: $index)
}
}
