Tabview 索引在白色背景下不起作用

The*_*anu 12 indexing styles tabview swift

我正在尝试使用名为 TabView 的 iOS14 功能。

我正在尝试创建一个轮播方面。一切正常,除了索引指示器没有显示(图像中的那 3 个点)。在与白色不同的背景上,会出现点,但如果背景是白色,则不会显示点。我期待看到它们呈某种灰色。

你知道这件事的根源是什么吗?我试图找到一种不使用的替代方案,".indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))"因为它会给点添加奇怪的颜色背景。

import SwiftUI

struct ContentView: View {
    var body: some View {
      SwiftUI.TabView {
                Text("test1")
                Text("test2")
                Text("test3")
                Text("test4")
            }
            .frame(width: UIScreen.main.bounds.width, height: 100)
            .tabViewStyle(PageTabViewStyle(indexDisplayMode: .automatic))
    }
}
Run Code Online (Sandbox Code Playgroud)

这是它在红色背景上的样子(在白色上什么也没有):

在此输入图像描述

小智 12

不幸的是,从 iOS 15 beta 5 开始,它目前在 SwiftUI 中似乎不可能实现。

但是,您可以深入到 UIKit 并修改外观,如下所示:

TabView {
    Text("Page 1")
    Text("Page 2")
    Text("Page 3")
}
.onAppear() {
    UIPageControl.appearance().currentPageIndicatorTintColor = .black
    UIPageControl.appearance().pageIndicatorTintColor = .grey
}
Run Code Online (Sandbox Code Playgroud)

  • 为了保持与暗模式的兼容性,我建议将“currentPageIndicatorTintColor”设置为“UIColor.label”,将“pageIndicatorTintColor”设置为“UIColor.secondaryLabel”。 (4认同)