2

我想创建一个只有 3 个按钮的自定义标签栏设计。尝试拆分图像以适合 iPhone 屏幕时出现问题。宽度为 320 时,您需要 2 个选项卡的宽度为 106,第 3 个选项卡的宽度为 108。当我以正确的尺寸创建图像时,它们不适合,我最终在右侧下方有一条 1px 的线,例如这个:

在此处输入图像描述

这是我正在使用的代码:

UIImage *selectedImage0 = [UIImage imageNamed:@"tb_1_down.png"];
UIImage *unselectedImage0 = [UIImage imageNamed:@"tb_1_up.png"];

UIImage *selectedImage1 = [UIImage imageNamed:@"tb_2_down.png"];
UIImage *unselectedImage1 = [UIImage imageNamed:@"tb_2_up.png"];

UIImage *selectedImage2 = [UIImage imageNamed:@"tb_3_down.png"];
UIImage *unselectedImage2 = [UIImage imageNamed:@"tb_3_up.png"];

UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
UITabBarItem *item2 = [tabBar.items objectAtIndex:2];

self.tabBarController.tabBar.frame = CGRectMake(0, 430, 320, 50);

[self.tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tb_tabBar_BG.png"]];

[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0];
[item1 setFinishedSelectedImage:selectedImage1 withFinishedUnselectedImage:unselectedImage1];
[item2 setFinishedSelectedImage:selectedImage2 withFinishedUnselectedImage:unselectedImage2];

有什么方法可以使“item1”的宽度为 108 而不是 106?!

4

3 回答 3

1

这可能会给你你想要的: 为标签栏设置背景图像

这具有制作完全自定义标签栏按钮的过程。

于 2012-08-29T08:22:53.723 回答
0

我担心您可能正在查看 UITabBar/UITabBarController 的 100% 自定义实现 - 我不知道有任何方法可以在这种程度上自定义库存。

于 2012-05-16T09:47:40.647 回答
0

我设法通过继承 UITabBarController 来解决这个问题,并按照@human 的建议使用 UIImageViews 而不是 UIButtons,因为我无法摆脱更改按钮图像的不合理方式,无论您是否设置图像,它都会闪烁和突出显示或不。

我的代码可以在此处的答案中找到:UITabBar 自定义未按预期工作

于 2013-01-04T14:46:25.987 回答