iPhone UITabBarController - Трудно щелкнуть элементы вкладки

У меня действительно странная проблема с моим приложением, которое использует UITabBarController.

Во-первых, я создаю панель вкладок программно и не использую NIB, аля:

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, он работает отлично.

Любые идеи?


person Andrew K    schedule 14.03.2011    source источник


Ответы (1)


Я понял. Я использовал:

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

Должно быть, это отрезало интерактивную область моих представлений и каким-то образом отрезало панель вкладок. Я изменил его на:

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

И это устранило мою проблему.

person Andrew K    schedule 14.03.2011