15

ここに画像の説明を入力

swiftUI で tabView Indicator の色を変更する方法はありますか?

これは私のコードです

struct OnBoarding: View {
    var body: some View {
        
        TabView {
            ForEach(0 ..< 3) { item in
                VStack {

                    Image("discover")
                        .resizable()
                        .scaledToFit()
                    
                }
            }
        }

        .tabViewStyle(PageIndexViewStyle(backgroundDisplayMode: Color ?))
        
    }
}

struct OnBoarding_Previews: PreviewProvider {
    static var previews: some View {
        OnBoarding()
    }
}

tabViewStyle(PageIndexViewStyle(backgroundDisplayMode: Color ?)) を試しましたが、うまくいきません

4

3 に答える 3

13

基本的に、ビューが表示されたらグローバル変数を設定する必要があります。それを行う1つの方法は次のとおりです。

import SwiftUI

struct OnboardingView: View {
  
  var pages: [Page]
  
  var body: some View {
  
    TabView {
      ForEach(pages) { page in
        // Your component view
      }
    }
    .tabViewStyle(PageTabViewStyle())
    .onAppear {
      setupAppearance()
    }
  }
  
  func setupAppearance() {
    UIPageControl.appearance().currentPageIndicatorTintColor = .black
    UIPageControl.appearance().pageIndicatorTintColor = UIColor.black.withAlphaComponent(0.2)
  }
}
于 2020-09-16T11:15:10.450 に答える