iOS:标签项图像未加载

时间:2012-11-26 13:44:39

标签: ios

我想使用self.tabBarItem.image = [UIImage imageNamed:@"home_icon.png"];更改标签栏项目的图像看起来很简单,但我无法让它运行。注意:我只是将文件名从第一个替换为home_icon。代码使用名称“first”。

详细说明: 我已经开始使用标准的选项卡式应用程序,并且只更改了这一行代码。 Xcode然后加载64x64图像。我在项目中放置了一个home_icon.png文件,并确保它是一个30x30的png文件。文档说:“此方法在系统缓存中查找具有指定名称的图像对象,并返回该对象(如果存在)。如果匹配的图像对象尚未存在于缓存中,则此方法从指定文件加载图像数据,缓存它,然后返回结果对象。“为什么我不能在这里简单引用不同的文件?我不明白这里实际引用了什么。原始行为self.tabBarItem.image = [UIImage imageNamed:@"first"];,引用first.png。

我尝试了什么(见目前为止的答案)

  • 使用home_icon,而不是home_icon.png
  • 使用UIImage *img = [UIImage imageNamed:@"home.png"]; self.tabBarItem.image = img;
  • 添加2x文件
  • 检查输出控制台。没有提到错误。 (该应用程序仍然成功引用旧文件。)
  • 检查目标。文件已添加到目标

5 个答案:

答案 0 :(得分:0)

从最后删除“.png”。

答案 1 :(得分:0)

你应该尝试下面的代码;

UIImage *img = [UIImage imageNamed:@"image.png"];
[[tabBarController.viewControllers objectAtIndex:tabImageIndex] tabBarItem].image=img;

答案 2 :(得分:0)

使用以下代码更改标签栏的背景。您可以根据您的标签添加不同的不同图像。

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewControllers{
    NSUInteger index=[[tabBarController viewControllers] indexOfObject:viewControllers];

    switch (index) {
        case 0:
            [tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tab_act21.png"]];

            break;
        case 1:
            [tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tab_act22.png"]];
            break;
        case 2:
            [tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tab_act23.png"]];
            break;
        default:
            break;
    }

    return YES;
}

如果您只想更改标签栏项目图像然后使用以下代码。

self.tabbarcontroller.tabBarItem.image=[UIImage imageNamed:@"Someimage.png";

答案 3 :(得分:0)

你确定[UIImage imageNamed:@“home.png”]返回不是零吗?签入控制台

NSLog(@"%@", [UIImage imageNamed:@"home.png"]);

如果是这样,请尝试将图像添加到Build Phases - >复制捆绑资源

答案 4 :(得分:0)

解决方案是在png文件中仅使用alpha通道。有关详细信息,请参阅http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html