ios - TabView SwiftUI 中 TabItem 上的 LinearGradient

标签 ios swift swiftui

是否可以将 LinearGradient 应用于 TabItem? AccentColor 只需要一种颜色,我还没有找到另一种方法来将任何颜色应用于 TabItem。 有任何想法吗? This in a Gradient from Blue to Green for example (例如,从蓝色到绿色的渐变)

最佳答案

没有机会在 SwiftUI 中为 accentColor 应用渐变。因此,在您的情况下,您将必须创建自己的带有渐变的选项卡栏项目图像并将它们保存为 png。您必须匹配尺寸,因为您无法在 tabItem 中调整 Image 的大小。参见 this回答尺寸

您将需要一个带有渐变的事件图像和一个非事件图像,该图像可能像默认的 TabBar 行为一样是灰色的。然后只需在 TabView 中加载您的图像并根据选择..

举个例子

struct ContentView: View {
    @State var selection = 0
    var body: some View {
        TabView(selection: $selection) {
            Text("First")
                .tabItem {
                    Image(selection == 0 ? "home_active" : "home_inactive") //<< here you load your different images 

                    Text("Home")
                        .colorMultiply(Color.yellow)
                }

            Text("Second")
                .tabItem {
                    Image(selection == 1 ? "setting_active" : "setting_inactive")
                    Text("Setting")
                }
        }
    }
}

enter image description here

关于ios - TabView SwiftUI 中 TabItem 上的 LinearGradient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65324720/

相关文章:

swift - 带有 `isActive=true` 的嵌套导航链接未正确显示

ios - UITableView:未调用 "didDeselectCell"方法,尽管单元格被取消选择

ios - 单击从 Web 应用程序共享的链接时,如何从 iOS 设备打开应用程序?

ios - 无法在 iPad 上打开 Playground Book

ios - swift:弱不能应用于导出

swiftui - @Binding 不能用作属性

ios - RestKit - 从 RKRequestDescriptor 中排除具有 nil 值的属性映射

swift - 让 keydown NSEvent 在 Swift 中运行一次

ios - 处理 UICollectionView 单元格上的滑动 : implement handler on UICollectionView or on each cell?

swift - 如何删除由动态部分组成的 swiftui 列表中的项目?