UITableView arrastrando la distancia con UIRefreshControl

Estoy teniendo problemas para implementar un UIRefreshControl en un UITableView.

Todo funciona bien, excepto el hecho de que tengo que desplazar algo así como el 80% de la pantalla para que UIRefreshControl se dispare. A veces ni siquiera soy capaz de disparar, ya que hay una barra de tabs en la parte inferior de la pantalla, que cancela el movimiento de desplazamiento cuando el dedo lo alcanza.

Miré otras aplicaciones, a saber, el 'Correo' de Apple, donde se activa el UIRefreshControl después de desplazarse solo el 30% de la pantalla.

¿Qué me estoy perdiendo? ¡Realmente necesito ayuda en esto!

Gracias por adelantado

Tuve un problema similar y es muy posible que sea la misma causa para ti. superView que superView el indicador de desplazamiento y no pude ver la causa evidente del problema: la altura del UIScrollView es mucho mayor que su superView

Comtesting doblemente la altura de tu UIScrollView porque la "distancia de arrastre" es solo un porcentaje de esa altura. Lo mismo ocurre con UITableView , ya que es una class secundaria de UIScrollView .

EDIT: Parece que esta no es la única forma de reproducir este problema, ya que la distancia de arrastre requerida para activar la actualización se calcula de forma cochambrosa. Consulte esta pregunta para get más información.

Pero, en general, sucederá si la altura de UIScrollView es diferente a su contenedor principal (por ejemplo, la pantalla en sí).

Probablemente no necesite usar UIRefreshControl y simplemente utilice scrollViewDidScroll (o tableViewDidScroll si es un tableView) para manejar su actualización de forma correspondiente ya que UIRefreshControl no se puede modificar.

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height) { // Refresh from here } }