У меня есть ячейки в таблице с настраиваемыми полями, которые позволяют вводить числа с помощью настраиваемой цифровой клавиатуры.Это включает в себя вкладку.При переходе от нижней части таблицы к верхней части мне нужно (i) прокрутить таблицу до верхней части и (ii) выбрать настраиваемое поле в этой таблице.
Я обнаружил, что если я позвонюcellForRowAtIndexPath непосредственно после того, как я вызвал scrollToRowAtIndexPath, первый возвращает пустую ячейку.При повторном вызове после завершения прокрутки ячейка возвращается, как и ожидалось.Мне нужна сама ячейка, чтобы я мог получить пользовательский вид по значению тега и выбрать его.
Я пытался найти решение.Можно было бы вставить задержку после прокрутки, чтобы она могла завершиться.Но я попытался с помощью executeSlector: withObject: afterDelay без успеха.
Это мой код, вызываемый при нажатии вкладки.
-(void) customDualViewTabbed:(CustomDualView *)dualView {
UITableViewCell *cell=(UITableViewCell*)([dualView superview].superview);
NSIndexPath *fromIndexPath=[self.tableView indexPathForCell:cell];
NSIndexPath *toIndexPath;
if ((fromIndexPath.row+1)<[self.tableView numberOfRowsInSection:fromIndexPath.section]){
toIndexPath = [NSIndexPath indexPathForRow:(fromIndexPath.row+1) inSection:fromIndexPath.section];
}
else {
toIndexPath = [NSIndexPath indexPathForRow:0 inSection:fromIndexPath.section];
[[self tableView] scrollToRowAtIndexPath:toIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
//get cell we tabbed to
cell=[self.tableView cellForRowAtIndexPath:toIndexPath];
CustomDualView *dualView2 =(CustomDualView *)[cell viewWithTag:dualView.tag];
[dualView2 setSelected:(SelectedState)SelectedLeftTabbed];
}