我的应用程序使用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)上,它可以完美运行。
有什么想法吗?
答案 0 :(得分:0)
我明白了。我正在使用:
CGRect screenRect = [[UIScreen mainScreen] applicationFrame];
self.window = [[UIWindow alloc] initWithFrame:screenRect];
这一定是切断了我的视图的可点击区域并以某种方式切断了标签栏。我改成了:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
它解决了我的问题。