Skip to content

Instantly share code, notes, and snippets.

@shivaduke28
Last active November 29, 2025 19:14
Show Gist options
  • Select an option

  • Save shivaduke28/6b78bb9322ee64e5fa50cdac587cdc2e to your computer and use it in GitHub Desktop.

Select an option

Save shivaduke28/6b78bb9322ee64e5fa50cdac587cdc2e to your computer and use it in GitHub Desktop.
Make SwiftUI TabView background transparent
import SwiftUI
/// © 2025 shivaduk28, based on Sweeper
/// Original: https://stackoverflow.com/a/79591925
/// Licensed under CC BY-SA 4.0: https://creativecommons.org/licenses/by-sa/4.0/
/// Modifications made.
struct TransparentTabItem: UIViewControllerRepresentable {
class HelperVC: UIViewController {
override func didMove(toParent parent: UIViewController?) {
super.didMove(toParent: parent)
var currParent = parent
while true {
guard let parent = currParent else {
break
}
if parent.tabBarController?.viewControllers?.contains(parent) == true {
parent.view.backgroundColor = .clear
parent.tabBarController?.view.backgroundColor = .clear
break
}
currParent = currParent?.parent
}
}
}
func makeUIViewController(context: Context) -> HelperVC {
HelperVC()
}
func updateUIViewController(_ uiViewController: HelperVC, context: Context) {
}
}
extension View {
public func transparentTabItem<V>(@ViewBuilder _ label: () -> V) -> some View where V: View {
ZStack {
TransparentTabItem()
self
}.tabItem(label)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment