There's a more delicate way to update UIPageControl appearance if you are using SwiftUI view from UIKit.
// SwiftUI with with UIPageControl
struct MyView: View { ... }
import SwiftUI
import UIKit
final class MyViewContainerController: UIHostingController<MyView> {
init() {
let view = MyView()
super.init(rootView: view)
}
@available(*, unavailable)
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
let containerTypes = [MyViewContainerController.self]
let appearance = UIPageControl.appearance(whenContainedInInstancesOf: containerTypes)
appearance.currentPageIndicatorTintColor = .systemBlue
appearance.pageIndicatorTintColor = .systemIndigo
}
}
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: