1

「もっと読み込む」セルを UITableView に実装しようとしています。

プログラムでセル「さらに読み込む」のコンテンツ、高さなどを変更するにはどうすればよいですか? これは、以下に示すように選択したセルを取得することで実行できると想定しています。たとえば、背景色を変更したい場合、効果はありません。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if(indexPath.row == 2){
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

}
4

4 に答える 4

2

この関数を呼び出します。

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation (UITableViewRowAnimation)animation

このようなもの:

NSIndexPath* rowToReload = [NSIndexPath indexPathForRow:3 inSection:0];
NSArray* rowsToReload = [NSArray arrayWithObjects:rowToReload, nil];
[UITableView reloadRowsAtIndexPaths:rowsToReload withRowAnimation:UITableViewRowAnimationNone];

詳細はこちら

于 2012-07-26T20:01:12.630 に答える
1

テーブルビューのデリゲートメッセージを直接呼び出すのは良い方法ではないと思います...この「さらに読み込む」セルビューに1行余分に表示する必要がある場合はフラグを設定し、その時点でreloadDataを呼び出すとよいでしょう。テーブルビューのメッセージ(または単一セルビューの挿入/再読み込み)。

于 2012-07-26T19:57:56.043 に答える
0

高さを変更したい場合は、次のようにします。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
        if(indexPath.row == 0){
            return 25;
        } else {
            return 120;         
        }
}

色を変えたいならこんな感じで

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
        if(indexPath.row == 0){
            cell.backgroundColor =  [[UIColor alloc]initWithRed:50.0/255.0 green:50.0/255.0 blue:100.0/255.0 alpha:1];
        } else {
            cell.backgroundColor = [UIColor whiteColor];
        }

//or use cell.textLabel.textColor to change the text color

}
于 2012-07-26T19:58:36.260 に答える
0

ロード モアがテーブルの一番下にある場合は、テーブル フッターとして実装します。余分なインデックスでデータソースを台無しにすることはなく、flyweight から解放されて、必要に応じて変更/サイズ変更できます。

次のようなもの: tableView.tableFooterView = theFooterView;

次のページをロードした後、それが最後のページだった場合は、テーブルでプロパティを nil に設定してフッターを削除します。

スニペットについて: -cellForRowAtindexPath: (テーブル ビュー上) は、セルが表示されていない場合は何も返しません。また、tableView:cellForRowAtIndexPath (データソース バージョン) は、そのセルに対して再度呼び出されたときに行った可能性があることを元に戻します。すべてのセル変更コードをデータソースに配置し、変更が必要な場合はテーブルで適切なリロード セル メソッドを呼び出します。

于 2012-07-27T08:20:12.940 に答える