0

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];

もう 1 つ注目すべき点は、追加する各ビュー コントローラーで、「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 に答える