iPhone UITabBarController - 很难点击标签项

时间:2011-03-14 23:00:31

标签: iphone uitabbarcontroller uitabbaritem

我的应用程序使用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)上,它可以完美运行。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我明白了。我正在使用:

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

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

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

它解决了我的问题。