UITabBarController背景图像设置不正确

时间:2015-08-28 06:54:31

标签: ios image uitabbarcontroller uitabbar uitabbaritem

我正在尝试以编程方式添加UITabBarController。一切都很好,但我有两个问题。

  1. 我正在设置tabbar背景图片,但它显示了我在资源中甚至没有的不同图像。 我使用此图像作为tabbar背景图像,上面有一条绿线:
  2. 但它在底部显示另一条绿线:

    enter image description here

    以下是我正在使用的代码:

    [self.myTabBarController.tabBar setBackgroundImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"tabbar.png" ofType:nil]]];
    
    1. 另一个问题是,我使用以下代码设置tabbar项目图片:

       MyViewController *myController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
       UINavigationController *myNavController = [[UINavigationController alloc] initWithRootViewController: myController];
       [myNavController.tabBarItem initWithTitle:@"" image:[UIImage imageNamed:@"ads_inactive.png"] selectedImage:[UIImage imageNamed:@"ads_active.png"]];
      
    2. 已设置图片,但是当我尝试使用此MyViewController的{​​{1}}添加标题时:

      viewDidLoad

      它也在tabbar项目上显示相同的标题,但我不想要任何标题。

      我如何解决这个问题? 谢谢

2 个答案:

答案 0 :(得分:3)

图像尺寸小于标签栏的框架尺寸,因此要覆盖框架区域的背景图像显示两次。 您可以通过两种方式进行更改 1.)更改不是最佳选项的图像尺寸 2.)设置tabBar的内容插入,如(0,0,0,0)

答案 1 :(得分:0)

示例:

UITabBar *tabBar = self.tabBarController.tabBar;
iterm0.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);

UITabBarItem *iterm0 = [tabBar.items objectAtIndex:0];
[iterm0 setImage:[[UIImage imageNamed:@"tab1_normal"]
                  imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
[iterm0 setSelectedImage:[[UIImage imageNamed:@"tab1_selected"]
                          [(UITabBarItem *)[self.tabBarController.tabBar.items objectAtIndex:0] setTitle:@""];