7

3 つのセクションを持つ UITableView があります。それぞれに、viewForFooterInSection を使用して追加したフッターがあります。私が抱えている問題は、テーブルビューを下にスクロールすると、フッターが画面の下部にくっつき、残りのセルのようにスクロールしないことです。フッターがほとんどセルのように機能し、テーブルの残りの部分と一緒にスクロールするようにする方法を知っている人はいますか? ありがとう!

4

5 に答える 5

10

私は実際にそれを理解しました。おそらく最も賢い方法ではありませんが、UITableView スタイルをグループ化に変更したところ、修正されました。TableView を少し調整して、セルがグループ化されていない場合と同じように見えるようにする必要がありましたが (背景がクリアで、区切り記号がありません)、正常に機能しました。フッターが TableView の下部に貼り付けられなくなりました。

于 2012-07-20T19:47:27.167 に答える
5

フッターは固執するはずです。秘訣は、各セクションに余分なセルを追加し、そこにフッターをレンダリングすることです。さらにヘルプが必要な場合は、コメントを追加してください。

編集:

Q:わかりました。私はコア データと NSFetchedResultsController を使用して、TableView にデータを入力しています。それはこれを達成するのをより難しくしますか?

A:まったくありません。オーバーライド

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

各セクションに余分なセルを追加するには

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

そのセクションの fetchedResultsController の行よりも indexPath.row > かどうかをテストします。true の場合、フッター情報を表示するセルを追加します。

于 2012-07-15T20:25:41.960 に答える
3

これを回避する1つの方法は、フッターをスクロールビューの最後のセルとしてセルの1つとして設定する場合です(実行できますが、uitableを設定した配列の最後の項目として設定します)

于 2012-07-15T15:48:16.113 に答える
1

余分なセルを追加して非表示にし、ビューをレンダリングすることは、フッターを追加するための推奨される方法ではありません。適切に行うのは非常に簡単です。

- (UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section {
    NSString* sectionFooter = [self tableView:tableView titleForFooterInSection:section];

    UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, yourWidth, yourHeight)]; //create a view- the width should usually be the width of the screen
    UILabel* label = [[UILabel alloc] initWithFrame:someFrame]; 

    label.backgroundColor = [UIColor blueColor];
    label.textColor = [UIColor whiteColor];
    label.text = sectionFooter;

    [view addSubview:label];

    return view;
}

ここにあるようにテキストを追加する場合は、tableView: titleForFooterInSection: も実装する必要があります。

于 2012-07-15T21:28:33.450 に答える