J'ai un UISwitch dans mon prototype UITableViewCell.UISwitch dans UITableView Bogue
Le problème est que, lorsque j'active l'un des commutateurs, l'un des commutateurs non affichés s'allume également.
Cela ne se produit pas dans la version iPad où toutes les cellules sont affichées.
Voici un code:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *identifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
Notification *notification = [notifications objectAtIndex:indexPath.row];
UILabel *titleLabel = (UILabel *) [cell viewWithTag:100];
UISwitch *newsSwitch = (UISwitch *) [cell viewWithTag:101];
UIImageView *imageView = (UIImageView *) [cell viewWithTag:102];
[titleLabel setText:[notification name]];
[imageView setImage:[UIImage imageNamed:[notification image]]];
BOOL isOn = [storage boolForKey:[NSString stringWithFormat:@"notification_%@", [notification name]]];
[newsSwitch setOn:isOn];
[newsSwitch setTag:indexPath.row];
[newsSwitch addTarget:self action:@selector(didChangeStateForSwitch:) forControlEvents:UIControlEventValueChanged];
return cell;
}
Vous voulez dire qu'un interrupteur qui n'est pas encore à l'écran s'allume également? Alors le bug est le plus probable dans votre méthode 'didChangeStateForSwitch:', veuillez mettre à jour votre question et nous montrer le code de cette méthode. – DarkDust
J'ai retiré le code de didChangeStateForSwitch: et le comportement est le même. –