IOS 7中标签栏图标的选定状态
Posted
技术标签:
【中文标题】IOS 7中标签栏图标的选定状态【英文标题】:Selected state of tab bar icon in IOS 7 【发布时间】:2013-10-17 12:03:46 【问题描述】:我在学习构建我的第一个 iPhone 应用程序时很开心,我想知道是否有人会为我指明正确的方向。
我基本上已经为我的标签栏添加了自定义图标(ios 7)。现在我想为其中的每一个添加一个自定义的选定状态图标。我该怎么做?
谢谢
壳
【问题讨论】:
您想在顶栏或下栏添加图标吗?你可以使用 UIBarButtonItem。 从 Xcode 6 开始,您可以在 Interface Builder 中默认执行此操作。无需任何自定义解决方案。 【参考方案1】:从 Xcode 6 开始,您可以在 Interface Builder 中默认执行此操作。不需要像以前那样自定义子类或类别。
【讨论】:
用户定义的运行时属性的使用很简洁。 见鬼,这是一个很棒的解决方案。 为什么没有选择这个答案?这真是太棒了! 删除了我的答案,因为 Xcode 6 不再需要它【参考方案2】:这里是基于@MrAlek解决方案的swift解决方案,创建自定义UITabBarItem
import UIKit
@IBDesignable
class YourTabBarItem: UITabBarItem
@IBInspectable var selectedImageName:String!
didSet
selectedImage = UIImage(named: selectedImageName)
在界面生成器中,更改标签栏项目的类,您将看到 Selected Image Name 属性,只需在此处指定您选择的图像名称。我认为@IBInspectable 正在使用运行时属性。
【讨论】:
【参考方案3】:在 iOS7 上你应该设置selectedImage
tabBarItem.selectedImage = selectedImage;
tabBarItem.image = unselectedImage;
请记住,selectedImage
在 iOS6 中不可用。
如果您必须支持 iOS6,请使用– setFinishedSelectedImage:withFinishedUnselectedImage:
。
【讨论】:
【参考方案4】:在https://***.com/a/20007782/1755055查看我更完整的答案
您的选项卡通常会有一个导航控制器堆栈,因此您需要以下内容
- (void)viewDidLoad
[super viewDidLoad];
...
[self.navigationController.tabBarItem setSelectedImage:[UIImage imageNamed:@"MySelectedIcon.png"]];
如果标签中只有一个视图控制器而没有 UINavigationController
包装器,则可以使用
[self.tabBarItem setSelectedImage:[UIImage imageNamed:@"MySelectedIcon.png"]];
【讨论】:
【参考方案5】:像下面这样使用它可以解决iOS7中的图像问题:
[self.navigationController.tabBarItem setSelectedImage:[[UIImage imageNamed:@"MySelectedIcon.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
【讨论】:
【参考方案6】:您可以使用子方法来初始化 tabBarItem。
-(instancetype)initWithTitle:(NSString *)title image:(UIImage *)image selectedImage:(UIImage *)selectedImage
【讨论】:
以上是关于IOS 7中标签栏图标的选定状态的主要内容,如果未能解决你的问题,请参考以下文章