Lange Zeit Zuhörer, erstmals Anrufer hier auf Stapelüberlauf. Sei sanft.UIRefreshControl - Wie kann ich die Aktualisierung durchführen, nachdem die Berührung freigegeben wurde?
Ich implementiere UIRefreshControl auf einem UITableView, um die Daten der Tabelle zu aktualisieren. Bei anderen Pull-to-Refresh-Implementierungen beginnt der Refresh-Prozess erst, wenn der Finger des Benutzers im Pull-Refresh-Abstand angehoben wird. UIRefreshControl scheint nicht sofort diese Anpassung zu haben.
Mein UIRefreshControl init Code:
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:refreshControl];
Meine refresh: Code ist recht einfach:
-(void)refresh:(id)sender {
(... refresh code ...)
[sender endRefreshing];
}
Wie kann ich die Refresh-verzögern: Funktion, bis der Benutzer die Finger aus dem Pull entfernt?
Diese Lösung funktioniert, wenn der Benutzer das Ziehen und Ziehen langsam durchführt. Wenn es fast wie ein Streifen ist, wird das Laderad laufen, aber die refresh: -Funktion wird nicht aufgerufen, bis der Tisch wieder bewegt wird. edit: Ich habe die Funktion zu scrollViewDidEndDecelerating geändert: und es scheint jetzt gut zu funktionieren. Vielen Dank! – outphase
Ja, Sie haben recht! Jetzt funktioniert es viel besser, danke für die Korrektur meines Codes!) – Ned
Es gibt ein kleines Problem damit. Wenn Sie die Tischansicht so weit nach unten ziehen, dass Sie sich erfrischen können, halten Sie Ihren Finger nach unten, gehen Sie zurück zu der Stelle, an der der Spinner ungefähr halb sichtbar ist, und lassen Sie ihn dann los, damit sich der Spinner dreht und nichts passiert. –