0

文字列の配列を表示するtableViewがあります。しかし、私は(0または1)に値を持つ2番目の配列を持っています。0 の場合は 1 つの画像とテキストを黒で表示したいが、1 の場合は 2 番目の画像とテキストを緑で表示したい。

パースからダウンロードした配列。それは働いています。しかし、セルをクリックしても何も起こらないので、1か0かを確認する必要があるコードを以下に表示します。

if ([NSNumber numberWithInt:0] == [oneOrZeroArray objectAtIndex:indexPath.row])
{
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
cell.textLabel.textColor = [UIColor darkTextColor];
cell.editingAccessoryType = UITableViewCellAccessoryDetailDisclosureButton;
cell.imageView.image = [UIImage imageNamed:@"noCheckMark.png"];
[oneOrZeroArray replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithInt:1]];
}
else if ([NSNumber numberWithInt:1] == [oneOrZeroArray objectAtIndex:indexPath.row])
{
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
cell.textLabel.textColor = [UIColor greenColor];
cell.editingAccessoryType = UITableViewCellAccessoryDetailDisclosureButton;
cell.imageView.image = [UIImage imageNamed:@"checkMark.png"];
[oneOrZeroArray replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithInt:0]];
}

セルをクリックすると、アプリケーションが解析からデータをダウンロードしたときの数値が NSLog に表示されますが、配列はクリックしても更新されません。

(後の問題は、セルをクリックしたときに新しい配列項目をアップロードすることです)

エディッド:

わかりましたので、didSelectRowAtIndexPath のコードを使用すると、少しは機能します。

tableView セルの表示方法

画像をロックすると、セルは何かを実行していますが、正しくありません。あるアイテムをクリックすると、他のアイテムが更新され、そのようにジャンプします。写真で説明しているセルをクリックするだけで、他のセルは押しません。

編集2: 私の側から失敗します...

私が移動した場合: [oneOrZeroArray replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithInt:0]]; didSelectRowAtIndexPath に移動すると機能します =)。

4

1 に答える 1

0

-tableView:didSelectRowAtIndexPath: を実装しましたか? 次のようなものが必要です。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if ([oneOrZeroArray[indexPath.row] intValue] == 0) {
    oneOrZeroArray[indexPath.row] = @1;
} else {
    oneOrZeroArray[indexPath.row] = @0;
}
[tableView reloadData];

}

于 2013-10-23T17:36:11.200 に答える