私は Objective-C を初めて使用し、iOS 用の最初のアプリを作成しようとしています。アイデアは非常に単純ですが、私は最初のアーキテクチャ構築ですでに失敗しています。
ビューがロードされたときに動的に作成する必要がある、複数のタブに表示されるさまざまなビューを作成したいと思います。さらに、アプリには、実行時にタブを動的に追加する機能が必要です。タブ ビューは画面全体に表示するのではなく、トップ ビューの 2/3 を占める必要があります。下部の残りの 1/3 は、再び 2 つのサブビューに分割されています。これらは、タブ スイッチで変更することを意図していません。
私が行ったことは、UIWindow、UITabBarController、および 2 つの UIViewControllers (2 つのタブ用) と 1 つ (または図のように 2 つ) を作成することです。
これまでのところ、異なるタブビューを切り替えることができましたが、CGMakeRect を使用して両方のタブの UIViewControllers を任意のサイズに変更しようとするとすぐに、常に同じままで画面全体をカバーします。
下部に作成されたサブビューには、何らかの理由でクリックできないボタンが含まれています。タブビューからカバーされているためかもしれません。
これらのビューを構築する方法を教えてください。
どうもありがとう!
これが私のコードです:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIViewController *test = [[UIViewController alloc] init];
test.view.backgroundColor = [UIColor grayColor];
test.view.frame = CGRectMake(0, 0, 320, 200);
UIButton *button3 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button3 setTitle:@"View 3" forState:UIControlStateNormal];
button3.frame = CGRectMake(30.0, 30.0, 120.0, 50.0);
[test.view addSubview:button3];
UITabBarController *tabBarController = [[UITabBarController alloc] init];
UIViewController *viewController1 = [[UIViewController alloc] init];
UITabBarItem *tab1 = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:1];
[viewController1 setTabBarItem:tab1];
UIViewController *viewController2 = [[UIViewController alloc] init];
UITabBarItem *tab2 = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemContacts tag:2];
[viewController2 setTabBarItem:tab2];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"View from Tab 1" forState:UIControlStateNormal];
button.frame = CGRectMake(100.0, 100.0, 120.0, 50.0);
[viewController1.view addSubview:button];
UIButton *button2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button2 setTitle:@"View from Tab 2" forState:UIControlStateNormal];
button2.frame = CGRectMake(100.0, 100.0, 120.0, 50.0);
[viewController2.view addSubview:button2];
tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
self.window.rootViewController = tabBarController;
[self.window addSubview:test.view];
[self.window makeKeyAndVisible];