gpt4 book ai didi

iOS - 检查选择了哪个 UITabBar 选项的简单方法

转载 作者:行者123 更新时间:2023-11-29 02:58:31 24 4
gpt4 key购买 nike

我的目标是制作一个 if/else 语句,以便我可以说:如果选择了 TabBarItem,则将 SelectedImageTintColor 设置为该颜色。

我是 ObjC 的新手,不确定如何实现 if 语句。这是我的 viewDidLoad:

- (void)viewDidLoad
{
[super viewDidLoad];

UITabBarItem *item0 = [self.tabBar.items objectAtIndex:0];
item0.image = [[UIImage imageNamed:@"red.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];


UITabBarItem *item1 = [self.tabBar.items objectAtIndex:1];
item1.image = [[UIImage imageNamed:@"yellow.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UITabBarItem *item2 = [self.tabBar.items objectAtIndex:2];
item2.image = [[UIImage imageNamed:@"green.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UITabBarItem *item3 = [self.tabBar.items objectAtIndex:3];
item3.image = [[UIImage imageNamed:@"black.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

[[UITabBar appearance] setSelectionIndicatorImage:
[UIImage imageNamed:@"item.png"]];


}

如您所见,我为每个 TabBarItems 指定了单独的图像,我想让高亮颜色与图像匹配(因此 red.png 为红色高亮,yellow.png 为黄色等)

如何实现这个 if/else 语句?同样,我想检查 indexPath (0-3),然后为 tabBarItem 设置自定义 setSelectedImageTintColor。对我来说,另一个选择是完全删除突出显示,如果这样更实用的话。

最佳答案

- (void)viewDidLoad
{
[super viewDidLoad];

UITabBarItem *item0 = [self.tabBar.items objectAtIndex:0];
item0.image = [[UIImage imageNamed:@"red.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];


UITabBarItem *item1 = [self.tabBar.items objectAtIndex:1];
item1.image = [[UIImage imageNamed:@"yellow.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UITabBarItem *item2 = [self.tabBar.items objectAtIndex:2];
item2.image = [[UIImage imageNamed:@"green.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UITabBarItem *item3 = [self.tabBar.items objectAtIndex:3];
item3.image = [[UIImage imageNamed:@"black.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

[[UITabBar appearance] setSelectionIndicatorImage:
self.tabBar.selectedItem.image];


}

如果您希望在切换标签页时更新图像:

在你的 .h 文件中,你会有这样一行:

@interface MyClass : UIViewController

改成

@interface MyClass : UIViewController <UITabBarDelegate>

当然,用您的类(class)名称替换 MyClass。

在你的 viewDidLoad: 中,添加这一行:

self.tabBar.delegate = self;

在您的 .m 文件中,像这样实现 tabBar:didSelectItem::

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
[[UITabBar appearance] setSelectionIndicatorImage:item.image];
}

关于iOS - 检查选择了哪个 UITabBar 选项的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23575617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com