【问题标题】:custom tabbar background image is too big自定义标签栏背景图片太大
【发布时间】:2012-12-17 10:00:57
【问题描述】:

我正在尝试在我的标签栏上设置自定义背景图像。我有名为“tabbarBack.png”的图像,大小为 640x92。在我的代码中,我是这样设置的。

[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack.png"]];

当我在设备上测试它时,标签栏比它应该的大两倍? 有什么帮助吗?

亲切的问候

【问题讨论】:

  • 将图片重命名为 tabbarBack@2x.png。这称为 Retina 显示屏的像素加倍

标签: iphone objective-c ios uitabbar


【解决方案1】:

调整图像大小可能会导致它失去分辨率,因为它是基于像素的。 与其使用 setBackgroundImage(它不允许您调整图像大小)并在 Xcode 之外更改图像,为什么不将背景图像作为标签栏的子视图插入呢?这样您就可以在 XCode 中调整图像框架的大小而保持图像文件不变!

/* TAB BACKGROUND IMAGE */
UIImageView *tabBackground = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 49)];
tabBackground.image = [UIImage imageNamed:@"BackgroundImage.png"];
tabBackground.contentMode = UIViewContentModeScaleAspectFill;
[self.tabBar insertSubview:tabBackground atIndex:0];

默认选项卡尺寸为 320x49 - 如果您的选项卡栏尺寸是自定义的,请调整上面的 initWithFrame:CGRectMake。最后,如果您将其他图像作为子视图添加到标签栏,请确保在添加背景图像之前添加这些图像。

【讨论】:

    【解决方案2】:

    试试下面两行

    self.tabBarController.tabBar.autoresizesSubviews = NO;
    self.tabBarController.tabBar.clipsToBounds = YES;
    

    【讨论】:

      【解决方案3】:

      NSAddict 的评论:将您的图像重命名为 tabbarBack@2x.png。这称为 Retina 显示屏的像素加倍。

      没有@2x,iOS 不知道它应该应用一个比例因子,它会按原样使用,尽管它应该减半。

      所以一个黑客是:

      [[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack@2x.png"]];
      

      实际上应该有

      • tabbarBack png (45 px 左右)
      • tabbarBack@2x.png

      所以你只说

      [[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack.png"]];
      

      【讨论】:

      • 当我这样做的时候。标签栏变得更大了。
      • 它不再起作用了,因为现在连苹果都支持多种分辨率和自动布局...
      • !?你当然必须为正确的 res 设置正确的图像——没有理由拒绝投票:)
      【解决方案4】:

      检查你是否有这一行:

          [[UITabBar appearance] setShadowImage:image];
      

      您必须将其删除或设置为零。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-14
        • 1970-01-01
        • 2017-07-09
        • 2021-09-30
        • 1970-01-01
        • 1970-01-01
        • 2014-09-25
        相关资源
        最近更新 更多