Skip to content

Instantly share code, notes, and snippets.

@calt
Last active June 24, 2024 22:17
Show Gist options
  • Save calt/7ea29a65b440c2aa8a1a to your computer and use it in GitHub Desktop.
Save calt/7ea29a65b440c2aa8a1a to your computer and use it in GitHub Desktop.
UITabBar with custom height in Swift, does not work for iOS 14 or later.
// Does not work on iOS 14.0 or later, keeping the gist just for reference.
extension UITabBar {
override open func sizeThatFits(size: CGSize) -> CGSize {
super.sizeThatFits(size)
var sizeThatFits = super.sizeThatFits(size)
sizeThatFits.height = 71
return sizeThatFits
}
}
@Reginmaru
Copy link

New to Swift over here! - Trying to understand how I would use this in Views. Here is my Tabs View `struct Tabs: View {
@EnvironmentObject private var themeManager: ThemeManager
@Environment(.colorScheme) var mode: ColorScheme
@State private var selectedTab = 0

var body: some View {
        TabView(selection: $selectedTab) {
            DetailsView()
                .tabItem {
                    Text("Home")
                    TabImage(name: "misty", size: CGSize(width: 42, height: 42))
                    
                }
                .tag(0)
            
            SettingsView()
                .tabItem {
                    Text("Socials")
                    TabImage(name: "laptop", size: CGSize(width: 42, height: 42))
                    
                }
                .tag(1)
            
        }
        .onAppear(perform: {
            CustomTabBar().sizeThatFits(CGSize(width: 300, height: 400))
        })
        .accentColor(AppColors(mode: mode).jnjBorder)
}

}`

With the extension class CustomTabBar : UITabBar { override open func sizeThatFits(_ size: CGSize) -> CGSize { super.sizeThatFits(size) var sizeThatFits = super.sizeThatFits(size) sizeThatFits.height = 71 return sizeThatFits } }

However my emulator is still showing all clumped up. I've tried a few other ways to try and increase the height but nothing seems to work!

Here is the resulting emulator screenshot:
Screenshot 2024-06-24 at 23 15 58

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment