0

ViewTable View Sectionを含む UITableViewController があります。

ビューには、テーブルのタイトルを示すラベルが含まれています。

私の問題は、スクロールにViewが含まれていることです。私が望むのは、Viewを静的に保ち (スクロールから除外)、 Tableのみをスクロールすることです。(私は静的セルを使用します)

ありがとう。

4

3 に答える 3

0

UITableViewのサブクラスなのでUIScrollView

- (void)viewDidLoad {
    [super viewDidLoad];
    // mySubview is an instance variable, declared in .h file
    [self.tableView addSubview:mySubview];
    // here goes the rest of your code
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if(scrollView == self.tableView) {
        mySubview.frame = CGRectMake(mySubview.frame.origin.x, scrollView.contentOffset.y, mySubview.frame.size.width, mySubview.frame.size.height);
    }
}

コードはWWDC'10または'11(覚えていません)から取得されたので、それが最も適切な方法であると確信しています。

説明:-viewDidLoadビューを作成し、それをtableViewのサブビューとして追加します。あなたはそれをすることができます-loadViewまたは-init-それは問題ではありません。最も重要な行は-scrollViewDidScroll:メソッドにあります。このメソッドは、ユーザーがscrollViewをドラッグするたびに呼び出されるためorigin.y、サブビューcontentOffset.yのをscrollViewに設定するだけです。

于 2012-10-11T16:42:16.993 に答える
0

UITableViewController しないでください。UIViewController を使用して、UITableView オブジェクトの外部でビューを管理します。必要に応じて、UIViewControllerContainment を実装して、カスタム ビュー コントローラー内のさまざまなビューとさまざまなビュー コントローラーを管理することもできます。

于 2012-10-11T16:49:13.657 に答える
0

UITableViewController の階層は

- UIView
-- UIScrollView
---- UITableView

アイテムを変更するとき、最初は UITableView にいるので、スクロールしたくない部分を UIView (scrollView の外側) に追加する必要があります。したがって、次のように super を数回呼び出す必要があります。

[self.superview.superview.view addSubview:viewThatDoesNotScroll];

于 2012-10-11T16:20:36.693 に答える