[SwiftUI] [iOS14] PageTabViewStyle에서 PageControl의 색상 변경

5440 단어 SwiftUIiOS14
iOS14에서 TabViewPageTabViewStyle가 추가되었습니다. iOS13에서는, UIPageViewController에 상당하는 클래스가 없었습니다만, PageTabViewStyle 로 실현할 수 있게 되었으므로, UIViewRepresentable를 사용하지 않게 되므로 편리합니다.
그러나 하나의 난점이 arimasu.

여러가지 조사한 결과, UIKit의 UIAppearance를 사용 밖에 지금까지 방법이 없다는 것을 알았습니다.

일반 사용법



UIPageControl의 표시가 흰색이므로 배경을 검게 만듭니다.
struct ContentView: View {
    var body: some View {

        TabView {
            Text("タイトル1").foregroundColor(.white)
            Text("タイトル2").foregroundColor(.white)
        }.tabViewStyle(PageTabViewStyle.init(indexDisplayMode: .always))
        .background(Color.black)
        .edgesIgnoringSafeArea(.all)

    }
}



UIPageControl의 색상 변경



SwiftUI만으로는 UIPageControl의 파트의 색을 바꿀 수 없지만, UIAppearance를 사용하면 변경이 가능합니다.
import SwiftUI
import UIKit

struct ContentView: View {

    init() {
        UIPageControl.appearance().currentPageIndicatorTintColor = .red
        UIPageControl.appearance().pageIndicatorTintColor = UIColor.white.withAlphaComponent(0.8)
    }

    var body: some View {

        TabView {
            Text("タイトル1").foregroundColor(.white)
            Text("タイトル2").foregroundColor(.white)
        }.tabViewStyle(PageTabViewStyle.init(indexDisplayMode: .always))
        .background(Color.black)
        .edgesIgnoringSafeArea(.all)

    }
}



참고

좋은 웹페이지 즐겨찾기