0

我的应用程序使用 UITabBarController 时遇到了一个非常奇怪的问题。

首先,我以编程方式创建标签栏,而不是使用 NIB,ala:

tabBarController = [[UITabBarController alloc] init];
NSMutableArray *localControllersArray = [[NSMutableArray alloc] initWithCapacity: 3];
UINavigationController *nav;

VisitViewController *viewVisit = [[VisitViewController alloc] initWithTabBar];
nav = [[UINavigationController alloc] initWithRootViewController: viewVisit];
[localControllersArray addObject:nav];
[nav release];
[viewVisit release];

// ... other tabs, same format as previous

tabBarController.viewControllers = localControllersArray;
[localControllersArray release];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];

另一件需要注意的事情是,在我添加的每个视图控制器中,我调用“self.title = 'Tab Title';” 设置标题文本。我怀疑这很重要。

无论如何,一切都运行并显示正常 - 我遇到的问题是,如果我单击选项卡图像的下半部分,则没有任何反应。我必须单击 50% 标记以上才能获得选项卡项目以选择和更改选项卡。

如果您查看选项卡栏应用程序,就会发现中间有一种自然渐变的水平方向。基本上低于该线的任何内容,我都无法单击以切换选项卡。这真的很烦人,因为在设备上它会让你一遍又一遍地点击标签,直到你超过那个标记,并且感觉非常缓慢。在 Twitter 等其他标签应用程序上,它可以完美运行。

有任何想法吗?

4

1 回答 1

0

我想到了。我正在使用:

CGRect screenRect = [[UIScreen mainScreen] applicationFrame];
self.window = [[UIWindow alloc] initWithFrame:screenRect];

这一定是切断了我的视图的可点击区域并以某种方式切断了标签栏。我将其更改为:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

它解决了我的问题。

于 2011-03-14T23:11:28.090 回答