How to change ProgressView accentColor in SwiftUI

If we want to change the color of ProgressView in SwiftUI we can use the tint modifier and accentColor modifier for linear style progressView as the accentColor modifier will not work on circular style progressive, which is also the default style of progressView in SwiftUI.

Change ProgressView Color in swiftUI

Firstly Let’s see how we use progressView in SwiftUI

Simple ProgressView

struct ContentView:View
{
    var body: some View{
        
        VStack(spacing: 20){
            
            //Simple circuler progress view
            ProgressView()

       }
   }
}

ProgressView in SwiftUI

 

ProgressView With Label

Let’s give the Progress view a label and tint

struct ContentView:View
{
    var body: some View{
        
        VStack(spacing: 20){
            
            //Simple circuler progress view
            ProgressView()
            
     /*       Text("-----------------")
            
            //progressView with label
            ProgressView("Loading...").tint(.yellow)
            Text("-----------------")

       }.padding()
        
    }

}

ProgressView With Label and tint color in swiftui

ProgressView with Label and Image

We can change the color of the label with the foregroundColor modifier. and images can also be added in the progressView.

struct ContentView:View
{
    var body: some View{
        
        VStack(spacing: 20){
            
            //Simple circuler progress view
            ProgressView()
            
            Text("-----------------")
            
            //progressView with label
            ProgressView("Loading...").tint(.yellow)
            Text("-----------------")

            //progressView with text and image
            ProgressView(){
                Text("Loading....").foregroundColor(.yellow)
                Image(systemName: "bolt.ring.closed").foregroundColor(.yellow)
            }.tint(.yellow)
     
            Text("-----------------")

         }.padding()
        
    }

}
  • tint: for changing the color of the progressView.
  • foregroundColor: for changing the color of the image and text

ProgressView with Label and Image and color change

Change Style Of ProgressView

We can change the style of progressView by giving it value. When we give it a value parameter it changes its style from circular to linear. or you can also use the .progressViewStyle(.linear) modifier. This modifier will do the same work for us.

struct ContentView:View
{
    var body: some View{
        
        VStack(spacing: 20){
            
            //Simple circuler progress view
            ProgressView()
            
            Text("-----------------")
            
            //progressView with label
            ProgressView("Loading...").tint(.yellow)
            Text("-----------------")

            //progressView with text and image
            ProgressView(){
                Text("Loading....").foregroundColor(.yellow)
                Image(systemName: "bolt.ring.closed").foregroundColor(.yellow)
            }.tint(.yellow)
     
            Text("-----------------")

           
             //progress view of linear style
            ProgressView(value: 20, total: 100)
            
            Text("-----------------")

            

        }.padding()
        
    }

}

Change Style Of ProgressView swiftui

Change progressView color by using accentColor

struct ContentView:View
{
    var body: some View{
        
        VStack(spacing: 20){
            
            //Simple circuler progress view
            ProgressView()
            
            Text("-----------------")
            
            //progressView with label
            ProgressView("Loading...").tint(.yellow)
            Text("-----------------")

            //progressView with text and image
            ProgressView(){
                Text("Loading....").foregroundColor(.yellow)
                Image(systemName: "bolt.ring.closed").foregroundColor(.yellow)
            }.tint(.yellow)
     
            Text("-----------------")

            
           
            //progress view of linear style
            ProgressView(value: 20, total: 100)
            
            Text("-----------------")
            
            //change color of linear style progress view with accent color
            ProgressView(value: 20, total: 100){
                Text("Loading...").foregroundColor(.yellow)
            }
            .accentColor(.yellow)
            .progressViewStyle(.linear)

            Text("-----------------")

        
          //
        }.padding()
        
    }

}
  • accentColor:  this will change the color of progressView. But it will only work on a linear style of progressView. for circular or default style we have to use a tint modifier for changing the color.

 

Change progressView color by using accentColor

Leave a Reply

Your email address will not be published. Required fields are marked *