1

テキストと 2 つの画像を表示するカスタム セルを作成しました。ユーザーがセルを選択すると、画像が変更されるはずです。セルのプロパティにアクセスできますが、変更できません:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    CustomCell *cell = (CustomCell *)[self.tableView cellForRowAtIndexPath:indexPath];
    cell.check.image = setImage:[UIImage imageNamed:@"1355327732_checkbox-checked"];
    [cell.check setImage:[UIImage imageNamed:@"1355327732_checkbox-checked"]]; }

cell.check は UIImageView です

何か不足していますか?

4

3 に答える 3

2

カスタムセルを使用している場合は、関数 setSelected:animated: をオーバーライドできます...

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
    if (selected) {
        self.check.image = [UIImage imageNamed:@"1355327732_checkbox-checked"];
    } else {
        self.check.image = nil;
    }
}

その後、これを変更するために tableView コードで何もする必要はありません。それはうまくいくでしょう。

これに代わるより良い方法は、self.check 内でイメージを同じに保つことです。次に、それに応じて非表示をYESまたはNOに設定できます。これにより、パフォーマンスも向上します。

テーブルから複数の選択を取得できるようにするには、TableViewController に配置します...

self.tableView.allowsMultipleSelection = YES;

これにより、複数の行を選択できるように設定されます。1 回タップすると選択され、もう 1 回タップすると選択が解除されます。

選択した行を取得するには、実行できます...

NSArray *selectedRows = [self.tableView indexPathsForSelectedRows];
于 2012-12-12T16:58:34.590 に答える
0

同じ行で setImage と cell.check.image を呼び出すのはなぜですか? これを試して、結果が同じかどうかを確認してください。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    CustomCell *cell = (CustomCell *)[self.tableView cellForRowAtIndexPath:indexPath];
    //cell.check.image = setImage:[UIImage imageNamed:@"1355327732_checkbox-checked"];
    [cell.check setImage:[UIImage imageNamed:@"1355327732_checkbox-checked"]]; 

}

于 2012-12-12T17:02:47.943 に答える
0

あなたのコードに 2 つの問題があることに気付きました

1) このコード:

cell.check.image= setImage:[UIImage imageNamed:@"1355327732_checkbox-checked"];

2) 画像の拡張子はありません

それを次のように置き換えます。

cell.check.image= [UIImage imageNamed:@"1355327732_checkbox-checked.png"];

于 2012-12-12T17:10:07.610 に答える