0

我在尝试将我自己的设计实现到标签栏时遇到了麻烦。不知何故,即使它们具有相同的高度,项目和背景也无法正确对齐。这些按钮似乎比背景更远,我不知道为什么。

实现项目/按钮的代码:(这是在“Tab1ViewController.m”的“viewDidLoad”中添加的,这是我的 5 个视图控制器中的第一个)

UIImage *selectedImage0 = [UIImage imageNamed:@"searchSEL"];
UIImage *unselectedImage0 = [UIImage imageNamed:@"search"];

UIImage *selectedImage1 = [UIImage imageNamed:@"homeSEL"];
UIImage *unselectedImage1 = [UIImage imageNamed:@"home"];

UIImage *selectedImage2 = [UIImage imageNamed:@"dareSEL"];
UIImage *unselectedImage2 = [UIImage imageNamed:@"dare"];

UIImage *selectedImage3 = [UIImage imageNamed:@"starSEL"];
UIImage *unselectedImage3 = [UIImage imageNamed:@"star"];

UIImage *selectedImage4 = [UIImage imageNamed:@"friendsSEL"];
UIImage *unselectedImage4 = [UIImage imageNamed:@"friends"];

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

[item0 setTitle:@""];
[item1 setTitle:@""];
[item2 setTitle:@""];
[item3 setTitle:@""];
[item4 setTitle:@""];
[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0];
[item1 setFinishedSelectedImage:selectedImage1 withFinishedUnselectedImage:unselectedImage1];
[item2 setFinishedSelectedImage:selectedImage2 withFinishedUnselectedImage:unselectedImage2];
[item3 setFinishedSelectedImage:selectedImage3 withFinishedUnselectedImage:unselectedImage3];
[item4 setFinishedSelectedImage:selectedImage4 withFinishedUnselectedImage:unselectedImage4];

并添加背景,我刚刚将此代码添加到我的 appDelegate.m 中的 didFinishLaunchingWithOptions

UITabBar *tabBar = [UITabBar appearance];
[tabBar setBackgroundImage:[UIImage imageNamed:@"bg"]];

按钮为 64x49 像素,背景为 320x49 像素。

我将无法在一段时间内回答或阅读评论,但我会尽快,希望有人能提供帮助。

4

1 回答 1

0

好吧,想通了,这很明显。项目下的部分是标题应该在的位置。而且由于我的图标只占用了图标空间而不是标题空间,因此标题所在的位置是空的。

通过为栏创建整个背景图像并在其上指定边框和渐变来解决该问题,并且只是将图标分别创建为小白/黑图像和透明背景。

于 2013-02-12T15:49:28.850 回答