Cuando selecciono un jugador en 'didSelectRowAtIndexPath' y agrego una marca de verificación en la fila seleccionada, agrega una marca de verificación adicional.UITableView didSelectRowAtIndexPath agregar marca de verificación adicional al tocar
Si toco row = 0, agrega una marca de verificación a row = 0 y row = 11. Esto significa que dos filas están marcadas por un toque. Si toco la fila = 1, agrega una marca de verificación adicional a la fila = 10, por lo que agrega la marca de verificación 10 filas hacia adelante. Parece que solo agrega la marca de verificación ya que el jugador no entra en la lista de jugadores real.
Cualquier ayuda sería muy apreciada.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSLog(@"indexPath: %i", indexPath.row);
// To many players selected
if (nrOfSelectedPlayers == 6) { //This is max players allowed
UIAlertView *alertPlayer = [[UIAlertView alloc] initWithTitle:@"VARNING"
message:@"Du kan maximalt spela \n med sex spelare!"
delegate:self
cancelButtonTitle:@"Tillbaka"
otherButtonTitles:nil];
[alertPlayer show];
[alertPlayer release];
nrOfSelectedPlayers--;
checkDeletePlayer = YES;
}
else {
// Handle the number of selected players to be able to delete player +6
if (checkDeletePlayer == YES) {
checkDeletePlayer = NO;
nrOfSelectedPlayers++;
}
if (cell.accessoryType == UITableViewCellAccessoryNone) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
[selectedPlayersArray addObject:cell.textLabel.text];
nrOfSelectedPlayers++;
}
else {
cell.accessoryType = UITableViewCellAccessoryNone;
selectedPlayer = cell.textLabel.text;
for (int oo = 0; oo < nrOfSelectedPlayers; oo++) {
if ([selectedPlayersArray objectAtIndex:oo] == cell.textLabel.text) {
[selectedPlayersArray removeObjectAtIndex:oo];
nrOfSelectedPlayers--;
}
}
//nrOfSelectedPlayers--;
}
}
}
THX tio su pregunta y el fragmento de código me salvó otra pregunta duplicado! – codejunkie
ur welcome dude – PeterK