ich Stack-Überlauf gesucht (Getting row of UITableView cell on button press) und habe viele Lösungen, die Leute behaupten zu arbeiten, aber ich habe noch finden die perfekte Lösung gefunden. Ich versuche, den indexPath des nächsten/vorherigen UITextField innerhalb meiner UITableView mit einem CGPoint zu erhalten, so dass ich zu ihm scrollen und ihn als Ersthelfer machen kann. Meistens ist es korrekt, aber wenn mein Textfeld ein vorhergehendes Feld in der UITableView in einem anderen Bereich ist, bekomme ich ein falsches Ergebnis.IndexPath für nächste/vorherige UITextField innerhalb UITableView
Hier ist der Code (Hinweis: nextTxtField ist ein UIView):
[NSIndexPath indexPathForRow:row inSection:section];
[NSIndexPath indexPathWithIndex:index];
[NSIndexPath indexPathForItem:item inSection:section];
Sobald Sie das bekommen:
CGPoint point = [nextTxtField convertPoint:CGPointZero toView:tableView];
NSIndexPath *indexPath = [tableView indexPathForRowAtPoint:point];
[UIView animateWithDuration:0.03 delay:0.0 options:0 animations:^{
[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];
} completion:^(BOOL finished) {
dispatch_async(dispatch_get_main_queue(), ^(void){
[nextTxtField becomeFirstResponder];
});
}];
Ich brauche die indexPath zu bekommen, wenn ich nur die Tabellenansicht und die UITextField gegeben werde. Dies funktioniert insbesondere dann nicht, wenn die UITableViewCell nicht sichtbar ist. CellForRowAtIndexPath gibt wegen der Wiederverwendung von Zellen nil zurück. – HawkEye1194
Wie erhalten Sie eine uitextfield-Instanz, die in der uitableviewcell mit einer Wiederverwendungskennung enthalten ist? Wie greifen Sie auf Uitextfield? –
Tut mir leid, ich mache keine Wiederverwendung von Zellen. Ich zuteile die Zellen, weil ich musste, mein Tisch wird nicht so groß sein. Also habe ich Verweise auf die Steuerelemente in einem Array. – HawkEye1194