我有一个带有4个标签的自定义UITabBarController
。子类代码如下:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.viewControllers enumerateObjectsUsingBlock:^(UIViewController *vc, NSUInteger idx, BOOL *stop) {
NSLog(@"Tab %d: %.1f", (int)idx, vc.tabBarItem.image.size.width);
}];
}
- (void)viewWillLayoutSubviews {
CGRect tabFrame = self.tabBar.frame;
tabFrame.size.height = 56;
NSLog(@"Width: %.1f", tabFrame.size.width);
NSLog(@"Screen Width: %.1f", [[UIScreen mainScreen] bounds].size.width);
tabFrame.origin.y = self.view.frame.size.height - 56;
self.tabBar.frame = tabFrame;
}
子类UITabBarController
将标签栏的高度增加到56像素。我在故事板中设置了这个类。
在故事板中,我还设置了未选择的图像&为选项卡选择的图像。图像尺寸为:
此外,我在App Delegate' didFinishLaunchingWithOptions
中进行了一些调整:
[[UITabBar appearance] setBackgroundImage:[[UIImage alloc] init]];
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
[[UITabBar appearance] setItemWidth:[[UIScreen mainScreen] bounds].size.width / 4];
但是,标签栏项目的宽度略有不同。中间两个略宽。
然后,我使用NSLog
来调试宽度。我发现标签宽度都报告为104.00,这是预期的。
我错过了将标签调整回相等的宽度?