#swift #xcode #swiftui
Вопрос:
У меня есть приложение, которое использует SwiftUI и имеет вид вкладки в нижней части приложения для навигации между страницами. Когда он был скомпилирован и встроен в Xcode 13, вид вкладки становится несколько прозрачным, и часть фонового изображения просвечивает. Изображение 1-это представление из Xcode 13. Изображение 2 — это представление, как показано в предыдущих версиях Xcode.
Что мне нужно изменить, чтобы восстановить внешний вид более ранних версий?
Изображение 1: частично прозрачное представление вкладок
Изображение 2: исходное представление вкладок
Ответ №1:
Начиная с iOS 15 TabView
, он меняет свой внешний вид, когда содержимое под ним прокручивается. Если вид прокрутки находится вверху, то внешний вид панели вкладок определяется standardAppearance
. Если он находится ближе ко дну, он использует scrollEdgeAppearance
. Значение по умолчанию scrollEdgeAppearance
прозрачно, вызывая поведение, которое вы видите.
Чтобы вид вкладки имел белый фон в обоих сценариях, вы могли бы добавить что-то подобное в блок TabView
» s onAppear
:
let appearance = UITabBarAppearance()
appearance.backgroundColor = .white
UITabBar.appearance().standardAppearance = appearance
if #available(iOS 15.0, *) {
UITabBar.appearance().scrollEdgeAppearance = appearance
}