自定义标签栏iOS - 3个按钮

时间:2012-05-16 09:40:43

标签: iphone xcode ios5 custom-controls uitabbar

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

enter image description here

这是我正在使用的代码:

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?

3 个答案:

答案 0 :(得分:1)

这可能会给你你想要的东西: Setting a background image for a tabbar

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

答案 1 :(得分:0)

我担心您可能会看到UITabBar / UITabBarController的100%自定义实现 - 我不知道如何自定义库存。

答案 2 :(得分:0)

我设法通过继承UITabBarController来解决这个问题,并使用UIImageViews代替UIButtons作为@human建议,因为我无法摆脱改变按钮图像的不合理方式,无论你是否闪烁,都闪烁不定是否设置图像。

我的代码可以在答案中找到:UITabBar customisation not working as expected