2009-10-28 20 views
43

Estoy tratando de encontrar un ejemplo de colocar un elemento encima de Table View fuera de la región desplazable normal. ¿Cómo haría esto? Un ejemplo sería lo que hace la aplicación Tweetie 2 para iPhone para actualizar los tweets.iPhone Pull Down Refresh like Tweetie

El código de muestra sería extremadamente útil.

+1

Si usa esto, tenga en cuenta que hay una patente pendiente para el concepto: http://appft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch- adv.html & r = 1 & f = G & l = 50 & d = PG01 & p = 1 & S1 = 20100199180.PGNR. & OS = dn/20100199180 & RS = DN/20100199180 –

+0

Interesante, sé que Tweetie lo hizo mejor, no estoy seguro de haberlo hecho antes. Además, tenga en cuenta que esta pregunta se hizo mucho antes de que la patente se archivara. – DanO

+0

Creo que cuando la patente se archiva es irrelevante. El criterio es "¿cuándo lanzó Tweetie 2 esta funcionalidad?" Y "¿lanzó alguien más un producto que hiciera lo mismo antes que ellos?" –

Respuesta

52

Encontré la respuesta a mi propia pregunta, para cualquiera que esté interesado.

EGOTableViewPullRefresh

he intentado esta solución y funciona muy bien! Es casi idéntico a la actualización Tweetie Pull Down.

+4

Pasé un poco de tiempo en EGOTableViewViewPullRefresh hoy y moví el código principal a una subclase UITableViewController, podría ser más fácil de implementar para algunas personas. http://github.com/jessedc/EGOTableViewPullRefresh – Jessedc

+0

Creo que el EGOTableViewPullRefrehsh no es una solución muy fácil. Pero si puede usarlo: es la mejor manera ;-) –

+0

No puedo encontrar una licencia en el sitio github. – titaniumdecoy

20

Aquí es una alternativa a EGOTableViewPullRefresh:

http://blog.leahculver.com/2010/12/iphone-pull-to-refresh.html

fuente disponible en github aquí:

https://github.com/leah/PullToRefresh

Es un poco más fácil de usar desde el punto de vista del desarrollador, aunque yo fui con EGOTableViewPullRefresh al final, ya que prefería cómo se veía.

+2

Funciona muy bien !!!! – Trevor

+0

Tiene un error cuando lo usa con una tabla simple que tiene secciones. Cuando se desplaza hacia arriba mientras se actualiza, las celdas de la tabla aparecerán encima del encabezado de la sección. – Stas

4

Comience con iOS 6.0, hay un control estándar llamado UIRefreshControl dentro de sdk. apple doc here

2

Aquí lo que puede hacer con iOS 6 y versiones posteriores:

- (void)viewDidLoad { 
    // other initialization 
    self.refreshControl = [[UIRefreshControl alloc] init]; 
    [self.refreshControl addTarget:self 
          action:@selector(myRefresh) 
        forControlEvents:UIControlEventValueChanged]; 
} 

Su método de actualización:

- (void)myRefresh { 
    // get refreshed data for table view 
} 

Finaliza la actualización en reloadData:

- (void)reloadData { 
    [self.tableView reloadData]; 

    // End the refreshing 
    if (self.refreshControl) { 
     [self.refreshControl endRefreshing]; 
    } 
}  

¡Entonces ya está todo listo!