Custom Tab Bar in iOS 18: 30 Days of Swift
Day 8: Level Up with a Custom Tab Bar!
\
In the eighth post of the #30DaysOfSwift series, let's make a Custom Tab Bar with animations and icons.
\
Standard tab bars are fine, but a custom one adds that extra touch!
Here’s how to implement a custom tab bar with SwiftUI:
Steps to Create a Custom Tab Bar:
1. Set Up the Tab Bar Structure:
import SwiftUI
struct CustomTabBarView: View {
@State private var selectedTab = 0
let tabBarItems = ["house.fill", "magnifyingglass", "person.fill"]
var body: some View {
VStack {
Spacer()
// Main Content
TabView(selection: $selectedTab) {
HomeView().tag(0)
SearchView().tag(1)
ProfileView().tag(2)
}
// Custom Tab Bar
HStack {
ForEach(0..<tabBarItems.count, id: \.self) { index in
Spacer()
Button(action: {
withAnimation(.spring()) {
selectedTab = index
}
}) {
VStack {
Image(systemName: tabBarItems[index])
.font(.system(size: 24))
.foregroundColor(selectedTab == index ? .blue : .gray)
.scaleEffect(selectedTab == index ? 1.2 : 1.0) // Add animation for scaling
Text(tabName(for: index))
.font(.caption)
.foregroundColor(selectedTab == index ? .blue : .gray)
}
.padding(.vertical, 10)
}
Spacer()
}
}
.padding(.bottom, 20)
.background(Color.white.shadow(radius: 10))
}
}
func tabName(for index: Int) -> String {
switch index {
case 0: return "Home"
case 1: return "Search"
case 2: return "Profile"
default: return ""
}
}
}
struct HomeView: View {
var body: some View {
Text("Home Screen")
.font(.largeTitle)
.foregroundColor(.blue)
}
}
struct SearchView: View {
var body: some View {
Text("Search Screen")
.font(.largeTitle)
.foregroundColor(.green)
}
}
struct ProfileView: View {
var body: some View {
Text("Profile Screen")
.font(.largeTitle)
.foregroundColor(.purple)
}
}
\
Happy Coding!
Welcome to Billionaire Club Co LLC, your gateway to a brand-new social media experience! Sign up today and dive into over 10,000 fresh daily articles and videos curated just for your enjoyment. Enjoy the ad free experience, unlimited content interactions, and get that coveted blue check verification—all for just $1 a month!
Account Frozen
Your account is frozen. You can still view content but cannot interact with it.
Please go to your settings to update your account status.
Open Profile Settings