如何在 iOS 15 Xcode 13 中将填充图标更改为未填充 TabView tabItem?

Posted

技术标签:

【中文标题】如何在 iOS 15 Xcode 13 中将填充图标更改为未填充 TabView tabItem?【英文标题】:How to change filled icon to not filled on TabView tabItem in iOS 15 Xcode 13? 【发布时间】:2021-09-24 18:19:44 【问题描述】:

如何在 ios 15 Xcode 13 中将 TabView tabItem 上的填充图标更改为未填充?

现在看来,图标是默认填充的……

我的代码:

import SwiftUI

struct Test_Home_V: View 
    var body: some View 
        TabView 
            HomeList_V()
                .tabItem 
                    Label("_HomeTitle", systemImage: "house")
                
...

注意:从 iOS 15 开始,您不应明确请求 SF Symbols 图标的填充变体,因为系统会根据需要自动使用它们。

那么我怎样才能像以前一样获得我的图标(SF 符号)的轮廓?

谢谢

【问题讨论】:

【参考方案1】:

为了解决这个问题,我们可以使用environment(\.symbolVariants, .none)

https://developer.apple.com/documentation/swiftui/symbolvariants/none

将此变体与 symbolVariant(:) 修饰符一起使用没有 任何效果。相反,显示一个忽略当前的符号 变体,直接将symbolVariants环境值设置为none 使用环境(:_:) 修饰符:

import SwiftUI

struct ContentView: View 
    var body: some View 
        TabView 
            Text("content")
                .tabItem 
                    Label("tab", systemImage: "creditcard")
                
            
            Text("content")
                .tabItem 
                    Label("tab", systemImage: "creditcard")
                        .environment(\.symbolVariants, .none) // here
                
        
    

结果:

【讨论】:

这正是我想要的!谢谢Konomae!

以上是关于如何在 iOS 15 Xcode 13 中将填充图标更改为未填充 TabView tabItem?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 XCode 中将图像和文本放在相同的布局中

无法更改 iOS 15 SwiftUI 列表部分标题填充

Xcode 13 - 缺少 IOS 15 模拟器?

EmptyView 未在 iOS 15、Xcode 13 中显示

苹果手机适配Xcode13打包及IOS15系统

升级到 XCode 13(和 iOS 15)后选项卡和导航栏发生变化