équipe,UITableView sélectionnée valeur indexPath donne mal
J'ai UITableView qui ont 50 ans et plus comptent cellules. largeur de chaque cellule est 60.
quand je défiler vers le haut à 20 cellules, puis appuyez sur une cellule
Sa donne la valeur de chemin d'index au-dessus de la valeur de la cellule cliquez pas sur la valeur de la cellule
intérieur cellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
[[cell checkButton] addTarget:self action:@selector(checkButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
-(void)checkButtonAction:(id)sender
CGPoint touchPoint = [sender convertPoint:CGPointZero toView:self.tableview];
NSIndexPath *indexPath = [self.tableview indexPathForRowAtPoint:touchPoint];
UIButton *button = (UIButton *)sender;
}
Si l'index sélectionné est 21 donne l'indice 20, le comptage d'index commence à partir de zéro.
La question a été observée dans iOS 10.1 iphone 7 plus périphérique, pas dans le simulateur iPhone 7 plus iOS 10.1 (14B72)
valeur Debugging {longueur = 2, path = 0-14}
NSIndexPath chemin doit être 0 - 15 mais il donne 0 - 14.
essayer une fois par le remplacement de l'expéditeur ((UIButton *) expéditeur) au point de conversion; – appleBoy21
si toujours le même problème, essayez une fois en suivant "[expéditeur convertPoint: CGPointZero toView: self.view]" – appleBoy21
@kiran 'checkButtonAction:' est l'événement tactile de votre bouton? – Mahesh