为什么SwiftUI选项卡项systemImage是充满?

0

的问题

我选择systemImage"地图"和"人"的选项卡项,但图像是在充格式,这必须在中空的格式。 是什么原因?

struct TestView: View {
var body: some View {
    TabView {
        Text("Map!")
            .tabItem {
                Label("Map", systemImage: "map")
            }
        
        Text("Profile")
            .tabItem {
                Label("Person", systemImage: "person")
            }
    }
}

}

模式:13.1

SF符号:3.1

enter image description here

swiftui
2021-11-21 19:08:21
1

最好的答案

3

这是标准SwiftUI行为iOS15,因为它实现了通过默认的 建议,从苹果的人口准则,其中说卡酒吧,应该使用充满变SF符号,同时侧栏果应该使用的轮廓的变型。

效果是实现了内部监督办公室自动适用 .symbolVariant 环境价值,正如在 象征的变种文件:

SwiftUI设置一个变种,你在某些环境。 例如,SwiftUI自动适用 fill 象征变为项目出现在内容关闭 swipeActions(edge:allowsFullSwipe:content:) 方法,或作为选项栏的项目的一个TabView.

如果你绝对想要得到的补模式,这是故意作出棘手的,但不是不可能的。 你有替代的供给 \.symbolVariant 环境可变直接上 Label 元,在你的 tabItem 宣言:

Text("Map!")
  .tabItem {
    Label("Map", systemImage: "map")
      .environment(\.symbolVariant, .none)
  }

使用 .symbolVariant(.none) 修改,或试图设置的环境价值较高的视图,不会的工作。

现在,你看看如何复盖的影响,我仍然建议使用的填充的形式在标签栏。 鉴于该项卡栏不再有一个背景的颜色差异的其余部分的页面,在很多情况下,这些额外的重量给出的标签项目,通过使用充满变为正确数额些重要的那些要素。

2021-11-21 20:19:55

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................