IOS 7中选项卡栏图标的状态

时间:2013-10-17 12:03:46

标签: ios7 uitabbar uitabbaritem

我很乐意学习构建我的第一个iPhone应用程序,并想知道是否有人会指出我正确的方向。

我基本上已经为我的标签栏(IOS 7)添加了自定义图标。现在我想为每个添加自定义选择状态图标。我该怎么做?

由于

壳牌

6 个答案:

答案 0 :(得分:19)

从Xcode 6开始,您可以在Interface Builder中默认执行此操作。不需要像以前那样的任何自定义子类或类别。

答案 1 :(得分:4)

在iOS7上,您应该设置selectedImage

tabBarItem.selectedImage = selectedImage;
tabBarItem.image = unselectedImage;

请注意,iOS6中不提供selectedImage 如果您必须支持iOS6,请使用– setFinishedSelectedImage:withFinishedUnselectedImage:

答案 2 :(得分:4)

以下是基于@MrAlek解决方案的快速解决方案,创建自定义UITabBarItem

import UIKit

@IBDesignable
class YourTabBarItem: UITabBarItem {

    @IBInspectable var selectedImageName:String!{
        didSet{
            selectedImage = UIImage(named: selectedImageName)
        }
    }
}

并在界面构建器中,更改选项卡栏项的类,您将看到“选定图像名称”属性,只需在此处指定所选图像名称。我认为@IBInspectable正在使用runtime属性。

enter image description here

答案 3 :(得分:2)

请在https://stackoverflow.com/a/20007782/1755055

查看更完整的答案

您的标签通常会有一个导航控制器堆栈,因此您需要以下

- (void)viewDidLoad
{
    [super viewDidLoad];

...

    [self.navigationController.tabBarItem setSelectedImage:[UIImage imageNamed:@"MySelectedIcon.png"]];

}

如果选项卡中只有一个视图控制器而没有UINavigationController包装器,则可以使用

[self.tabBarItem setSelectedImage:[UIImage imageNamed:@"MySelectedIcon.png"]];

答案 4 :(得分:1)

使用如下所示并解决iOS7中的图像问题:

[self.navigationController.tabBarItem setSelectedImage:[[UIImage imageNamed:@"MySelectedIcon.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];

答案 5 :(得分:-1)

您可以使用sub子方法来初始化tabBarItem。

-(instancetype)initWithTitle:(NSString *)title image:(UIImage *)image selectedImage:(UIImage *)selectedImage