在 SwiftUI 中为 TabView 添加顶部阴影
Add top shadow to TabView in SwiftUI
我有以下内容:
我使用的是原生 TabView
。我可以更改背景,但无法在 UITabBar 的顶部添加一点阴影,我尝试创建一个函数并在 onAppear 中调用它,如下所示:
func setupTabBar() {
// UITabBar.appearance().barTintColor = UIColor(named: "tabBarBackground")
// UITabBar.appearance().scrollEdgeAppearance = UITabBarAppearance()
UITabBar.appearance().backgroundColor = UIColor(named: "ThemeBackground2")
UITabBarAppearance().shadowColor = .white
}
它适用于背景但不是我需要的顶线。
这是基本的 TabView:
TabView(selection: $selectedTab) {
MarketsTabBarView()
.tag(HostingBarCategories.market)
.tabItem {
Image(systemName: "chart.xyaxis.line")
Text("Market")
}
PortfolioTabBarView()
.tag(HostingBarCategories.portfolio)
.tabItem {
Image(systemName: "bitcoinsign.square.fill")
Text("Portfolio")
}
SettingsTabBarView()
.tag(HostingBarCategories.settings)
.tabItem {
Image(systemName: "gearshape.fill")
Text("Settings")
}
}
如何在顶部添加阴影以标记分离?
shadowColor
应用于当前不存在的默认选项卡阴影,因此我们需要一个自定义模板图像(例如具有渐变透明度)以便 shadowColor
对其进行着色。
这是工作方法 (Xcode 13.3 / iOS 15.4)
主要部分:
appearance.shadowColor = .white
appearance.shadowImage = UIImage(named: "tab-shadow")?.withRenderingMode(.alwaysTemplate)
我有以下内容:
我使用的是原生 TabView
。我可以更改背景,但无法在 UITabBar 的顶部添加一点阴影,我尝试创建一个函数并在 onAppear 中调用它,如下所示:
func setupTabBar() {
// UITabBar.appearance().barTintColor = UIColor(named: "tabBarBackground")
// UITabBar.appearance().scrollEdgeAppearance = UITabBarAppearance()
UITabBar.appearance().backgroundColor = UIColor(named: "ThemeBackground2")
UITabBarAppearance().shadowColor = .white
}
它适用于背景但不是我需要的顶线。
这是基本的 TabView:
TabView(selection: $selectedTab) {
MarketsTabBarView()
.tag(HostingBarCategories.market)
.tabItem {
Image(systemName: "chart.xyaxis.line")
Text("Market")
}
PortfolioTabBarView()
.tag(HostingBarCategories.portfolio)
.tabItem {
Image(systemName: "bitcoinsign.square.fill")
Text("Portfolio")
}
SettingsTabBarView()
.tag(HostingBarCategories.settings)
.tabItem {
Image(systemName: "gearshape.fill")
Text("Settings")
}
}
如何在顶部添加阴影以标记分离?
shadowColor
应用于当前不存在的默认选项卡阴影,因此我们需要一个自定义模板图像(例如具有渐变透明度)以便 shadowColor
对其进行着色。
这是工作方法 (Xcode 13.3 / iOS 15.4)
主要部分:
appearance.shadowColor = .white
appearance.shadowImage = UIImage(named: "tab-shadow")?.withRenderingMode(.alwaysTemplate)