我很乐意学习构建我的第一个iPhone应用程序,并想知道是否有人会指出我正确的方向。
我基本上已经为我的标签栏(IOS 7)添加了自定义图标。现在我想为每个添加自定义选择状态图标。我该怎么做?
由于
壳牌
答案 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属性。
答案 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