1

UITableViewがスクロールされたときに移動しないサブビューを作成するために、UITableViewの親ビューにサブビューを追加しようとしています。サブビューをUITableViewに追加すると、ユーザーのスクロールアクションでテーブルとともに移動します。

これまでのところ、私のシナリオでは、UITabBarControllerに3つのUINavigationControllerがあります。それぞれにUITableViewControllerがあります。個々のコントローラーの画面にサブビューを追加したいと思います。ただし、次のように新しいサブビューをアプリケーション全体に追加したくありません。

[[[UIApplication sharedApplication] keyWindow] addSubview:newView];

新しいコントローラーをスタックにプッシュしたり、コントローラーをポップしたりするときに、サブビューを移動して、その上にあるUITableViewとともに非表示にします。ユーザーがUITableViewをスクロールすると、新しいサブビューは移動せずにその位置に配置されるという事実を維持します。UITableViewと新しいサブビューが同じレベルになるようにします。

ありがとう

4

2 に答える 2

1

サブビューをテーブルビューに追加します。

デリゲートメソッドscrollViewDidScrollを実装します。scrollViewDidScrollで、必要なサブビューの必要な中心を設定するだけです。

于 2012-12-24T06:30:43.450 に答える
1

いくつかのアプローチ:

まず、ユーザーがスクロールしたときに表示されるビューをテーブルビューに追加するには、テーブルにセクションが1つしかない場合に、そのセクションのヘッダーを追加できます。たとえば、これによりUIView、テーブルビューのヘッダーとしてプレーンブルーが追加されます。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.bounds.size.width, 50)];
    view.backgroundColor = [UIColor blueColor];
    return view;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 50;
}

次に、複数のセクションがある場合でも、そのトリックは機能せず、のUIViewController代わりに使用するUITableViewController場合は、そのコントローラーのビューの上部にヘッダーを追加し、その下部にテーブルビューを追加します。見る。(a)テーブルビュー用に(混乱を避けるために、IBOutlet通常は、と呼ばれるプロパティに)設定していることを確認する必要があります。tableView(b)このテーブルビューのデータソースおよびデリゲートとしてビューコントローラを指定します。

第3に、このヘッダーをアプリのすべてのシーンに表示する場合、別のアプローチ(iOS5以降のアプリ)では、View Controllerの包含を使用し、ヘッダーを持つコンテナービューを作成してから、アプリの最初のシーンを子ビューとして追加します。そのビューコンテナの。難しいことではありませんが、もしあなたが新しい開発者なら、私はあなたがそれを試すのを思いとどまらせるかもしれません。私はそれをしました、そしてそれはうまくいきます、しかしそれはすべての人々のためではありません。

第4に、アプリでナビゲーションコントローラーを使用している場合は、ナビゲーションバーをカスタマイズして、カスタムのルックアンドフィールをレンダリングできます。それはすべて、ヘッダーで何を達成しようとしているのかによって異なります。

于 2012-12-24T06:37:31.587 に答える