- [UITableView scrollToRowAtIndexPath:] rola, mas volta para a primeira linha
Eu tenho uma exibição de tabela agrupada com campos de texto na tableview. Para que o teclado não oculte os campos de texto, no textFieldShouldBeginEditing, chamo o método scrollToRowAtIndexPath e defino a posição de rolagem da linha que está sendo editada na parte superior da tableview.
A rolagem acontece, mas assim que o teclado aparece (ou seja, assim que o textFieldShouldBeginEditing retorna YES), a tabela retorna à sua posição original e exibe a primeira linha da primeira seção na parte superior. Não estou chamando reloadTable depois de fazer uma chamada para scrollToRowAtIndexPath.
O problema ocorre apenas para as linhas 4 e 5 (bdate e zip) password2 funcionam conforme o esperado.
Este é o código que estou usando para rolar para uma linha específica
if(textField == password2){
indPath = [NSIndexPath indexPathForRow:3 inSection:0];
[self.tableView scrollToRowAtIndexPath:indPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
return YES;
}
else if(textField == bdate){
indPath = [NSIndexPath indexPathForRow:4 inSection:0];
[self.tableView scrollToRowAtIndexPath:indPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
return YES;
}
else if(textField == zip){
indPath = [NSIndexPath indexPathForRow:5 inSection:0];
[self.tableView scrollToRowAtIndexPath:indPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
return YES;
}
Alguém pode me dizer o que pode estar errado? Qualquer insight ajudaria.
obrigado