Come posso rivelare UIRefreshControl quando aggiorno la tabella a livello di programmazione? L'uso di [self.refreshControl beginRefreshing] rende lo spinner animato ma non lo rivela.Come faccio a scorrere l'UITableView verso il basso per rivelare il sottostante UIRefreshControl
22
A
risposta
20
Dovrai modificare manualmente lo contentOffset
del tuo UITableView
. Assicurati di prendere in considerazione il numero contentInset.top
. Dovrebbe essere qualcosa di semplice come:
CGPoint newOffset = CGPointMake(0, -[myTableView contentInset].top);
[myTableView setContentOffset:newOffset animated:YES];
17
Questo farà il trucco
- (void)beginRefreshingTableView {
[self.refreshControl beginRefreshing];
// check if contentOffset is zero
if (fabsf(self.tableView.contentOffset.y) < FLT_EPSILON) {
[UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^(void){
self.tableView.contentOffset = CGPointMake(0, -self.refreshControl.frame.size.height);
} completion:^(BOOL finished){
}];
}
}
+1
A quanto pare è necessario richiamare 'beginRefreshing' nel blocco di completamento dell'animazione tableview o dopo la chiamata dell'animazione, altrimenti il tintColor del refreshControl impostato da te verrà ignorato. http://stackoverflow.com/a/20383030/903544 –
8
Per Swift 3, questo è quello che ho in base alla risposta di Peter Lapisu:
override func viewDidLoad() {
super.viewDidLoad()
self.refreshControl?.addTarget(self, action: #selector(refresh), forControlEvents: UIControlEvents.ValueChanged)
// ...
}
func refresh(sender:AnyObject) {
self.refreshControl?.beginRefreshing()
if let yOffsetTable = self.tableView?.contentOffset.y {
if yOffsetTable < CGFloat(Float.ulpOfOne) {
UIView.animate(withDuration: 0.25, delay: 0, options: UIViewAnimationOptions.beginFromCurrentState, animations: {
if let refreshControlHeight = self.refreshControl?.frame.height {
self.tableView?.contentOffset = CGPoint(x: 0, y: -refreshControlHeight)
}
}, completion: nil)
}
}
}
Problemi correlati
- 1. Goniometro: scorrere verso il basso
- 2. Come scorrere verso il basso - JQuery
- 3. Scrollview non scorrere completamente verso il basso
- 4. Scorri RecyclerVisualizza quando lo fai scorrere verso l'alto o fai scorrere verso il basso il recyclerview verso il basso
- 5. Textarea scorrere automaticamente verso il basso
- 6. Come scorrere verso il basso in ScrollView all'avvio attività
- 7. Come rotellina del mouse scorrere verso il basso con tmux
- 8. Come scorrere dall'alto verso il basso jQuery Mobile
- 9. come scorrere verso il basso una pagina web
- 10. Come scorrere verso il basso utilizzando Selenio WebDriver con Java
- 11. Come posso scorrere verso il basso la pagina?
- 12. jQuery - scorrere verso il basso ogni x secondi, quindi scorrere verso l'alto
- 13. jQuery scorrere verso il basso di un elemento non top
- 14. div jump dopo aver fatto scorrere verso il basso
- 15. jQuery Preliminare un DIV facendolo scorrere verso il basso
- 16. Non è possibile scorrere verso il basso UITableView
- 17. vim posso scorrere verso l'alto/il basso della finestra inattiva?
- 18. scorrere verso l'alto e verso il basso su un pulsante per fare clic su jquery
- 19. come lasciare il contenitore scorrere verso il basso da cima a fondo
- 20. Come faccio a sapere se lo scrollview è già sceso verso il basso?
- 21. C# Come faccio a scorrere il registro?
- 22. Come faccio a far scorrere UIWebView verso l'alto?
- 23. Rendere automatico un JScrollPane verso il basso
- 24. Android WebBrowser scorri verso il basso pagina
- 25. UITableView "Scorri verso il basso per aggiornare"
- 26. Come scorrere verso il basso di ListView a livello di programmazione?
- 27. angularjs ngRepeat A volte non riesco a scorrere verso il basso
- 28. Come rendere il mio layout in grado di scorrere verso il basso?
- 29. Scorri verso il basso fino a un elemento con rapportatore
- 30. ScrollView alawys scorrimento verso il basso
I' Ho notato che questo tende a causare problemi con il disegno della cella se non resetti il contentOffset anche dopo aver chiamato 'endRefreshing':' [myTableView setContentOffset: CGPointZero animato: YES]; ' –
Non funziona in iOS8 – AlKozin
Non funziona in ios 9. – cdub