Hey,
is there a way to set the tabbar\'s font to e.g. Chalkboard? I\'ve seen the question for the font size and tried it with font, but the loop wouldn\'t work out.
I've found myself an amazing and very easy tutorial to achieve exactly what I need. For further reference and for all, that might need that too, here's the link
Part 1
Part 2
Put in the AppDelegate.m under:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Here is the code:
NSMutableDictionary *attributes = [NSMutableDictionary dictionaryWithDictionary: [[UITabBarItem appearance] titleTextAttributesForState:UIControlStateNormal]];
[attributes setValue:[UIFont fontWithName:@"Avenir" size:10] forKey:UITextAttributeFont];
[[UITabBarItem appearance] setTitleTextAttributes:attributes1 forState:UIControlStateNormal];
On iOS 13 there is a bug with UITabBarItem.appearance().setTitleTextAttributes
method, so we need to do workaround like this:
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = .center
let attributes = [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 12),
NSAttributedString.Key.paragraphStyle: paragraphStyle]
let appearance = UITabBarItem.appearance()
appearance.setTitleTextAttributes(attributes, for: .normal)
if #available(iOS 13.0, *) {
let appearance = UITabBarAppearance()
appearance.stackedLayoutAppearance.normal.titleTextAttributes = attributes
appearance.stackedLayoutAppearance.normal.badgeBackgroundColor = .blue
appearance.stackedLayoutAppearance.selected.titleTextAttributes = attributes
appearance.stackedLayoutAppearance.selected.badgeBackgroundColor = .blue
tabBar.standardAppearance = appearance
}
If you only set appearance tabBar.standardAppearance = appearance
on iOS 13 you'll still have a bug, but the other one