0

我想使用self.tabBarItem.image = [UIImage imageNamed:@"home_icon.png"];看起来很简单来更改标签栏项目的图像,但我无法让它运行。注意:我只是将文件名从 first 替换为 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 文件
  • 检查输出控制台。没有提到错误。(应用程序仍然成功引用旧文件)。
  • 检查目标。文件被添加到目标
4

5 回答 5

0

从末尾删除“.png”。

于 2012-11-26T13:48:13.400 回答
0

你应该试试下面的代码;

UIImage *img = [UIImage imageNamed:@"image.png"];
[[tabBarController.viewControllers objectAtIndex:tabImageIndex] tabBarItem].image=img;
于 2012-11-26T13:52:57.877 回答
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";
于 2012-11-26T13:54:40.470 回答
0

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

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

如果是这样,请尝试将图像添加到 Build Phases -> Copy Bundle Resources

于 2012-11-26T14:15:13.233 回答
0

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

于 2012-11-26T17:30:41.010 回答