21

I have the following code but can't seem to remove the dots at the bottom of the TabView.

struct ContentView: View {
    @Environment(\.managedObjectContext) private var viewContext
    
    @State var users = ["Janice", "Emily", "Candice", "London", "Julia"]

    var body: some View {
        TabView {
            ForEach(users, id: \.self) { user  in
                UserCard(user: user)
            }
        }
        .tabViewStyle(PageTabViewStyle())
        .indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .never))
        .background(Color(.systemGroupedBackground))
    }
}

struct UserCard: View {
    
    let user: String
    
    var body: some View {
        Color.white
            .padding(30)
    }
}

I would have thought the PageIndexViewStyle(backgroundDisplayMode: .never) would remove the index dots but that is not working. Is there any other way to get rid of them?

alionthego
  • 8,508
  • 9
  • 52
  • 125

2 Answers2

31

try this:

struct ContentView: View {
    @Environment(\.managedObjectContext) private var viewContext
    @State var users = ["Janice", "Emily", "Candice", "London", "Julia"]

    var body: some View {
        TabView {
            ForEach(users, id: \.self) { user  in
                UserCard(user: user)
            }
        }
        .tabViewStyle(.page(indexDisplayMode: .never))  // <--- here
        .background(Color(.systemGroupedBackground))
    }
}

struct UserCard: View {
    let user: String
    var body: some View {
        Text(user)
    }
}
  • 5
    thx. Actually had to use .tabViewStyle(PageTabViewStyle(indexDisplayMode: .never)) for older swiftui version but works well. thx. – alionthego Jul 09 '21 at 14:13
4

You have to add this:

.tabViewStyle(.page(indexDisplayMode: .never))
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .never))

mkilmer
  • 139
  • 1
  • 2