У меня есть следующее:
Я использую родной 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)
Есть ли способ уменьшить высоту белой линии? Кстати, эта строка была не нужна: appearance.shadowImage = UIImage(named: "tab-shadow")?.withRenderingMode(.alwaysTemplate)
Я знаю, что сказал тень, но я искал ту линию, которая отделяет вид от панели вкладок :)
Если вы прокомментируете код с помощью shadowImage, вы получите только одну белую (или любого установленного вами цвета) строку. Наблюдаемая тень имеет высоту изображения - здесь просто для лучшей видимости.
Как бы вы уменьшили высоту этой строки?
Кстати, если я верну этот код, я получу эту ошибку: "Need an imageRef"
Это действительно здорово, что вы публикуете его на github с образцом, отличная работа и спасибо