UITabBarItem图像在单击时更改图像

时间:2015-03-25 10:27:59

标签: ios objective-c iphone xcode uitabbaritem

我会尽力解释我的问题。

当我的应用程序启动时,它会在appdelegate类中检查:

 if([[NSUserDefaults standardUserDefaults] boolForKey:@"checkboxClicked"]){

        tabBarItem3.image = [UIImage imageNamed:@"lock-open"];
        tabBarItem3.title = @"Logga ut";
    }

    else{
        tabBarItem3.title = @"Logga In";
        tabBarItem3.image = [UIImage imageNamed:@"lock.png"];
    }

基本上它决定图像是锁定还是使用相应的标题解锁。现在一切正常,图像应该显示出来。

场景1)用户启动应用程序,图像以“锁定打开”图像开始。稍后,用户进入注销页面并注销用户。在此之后点击应更改其图像的UITabBarItem时,它仍会显示图像“锁定打开”。但是,当用户单击另一个UITabBarItem时,将显示正确的图像。 注意标题始终设置正确。只是那些做奇怪事情的图像。

场景2)反之亦然用户启动时注销等等。

这是我用来更改图片的代码:

  UITabBarItem *item = self.tabBarController.tabBar.items[2];
  item.image = [UIImage imageNamed:@"lock"];
  item.title = @"Logga in";

1 个答案:

答案 0 :(得分:2)

使用以下代码更改UITabBarItem

的图像
UITabBarItem *item0 = [self.tabBar.items objectAtIndex:0];
item0.image = [[UIImage imageNamed:@"lock.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
item0.selectedImage = [UIImage imageNamed:@"lock-selected.png"];