奇怪的不均匀UITabBarItem宽度?

时间:2015-11-05 06:34:39

标签: ios objective-c uitabbarcontroller uitabbar uitabbaritem

我有一个带有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像素。我在故事板中设置了这个类。

在故事板中,我还设置了未选择的图像&为选项卡选择的图像。图像尺寸为:

  • 104 x 72px(1x)
  • 208 x 144px(2x)
  • 311 x 215px(3x)

此外,我在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,这是预期的。

我错过了将标签调整回相等的宽度?

0 个答案:

没有答案