¿Por qué UITableView llama a los methods delegates de UIScrollView?

Tengo una aplicación, en la que tengo una UITableView dentro de una UIView , que está nuevamente dentro de una UIScrollView , por lo que la jerarquía se vuelve así:

UIScrollView -> UIView -> UITableView

Los datos dentro de UITableView se rellenan correctamente.

Ahora, mi problema es que, cuando UITableView mi UITableView , el método delegado UIScrollView's scrollViewDidEndDecelerating: y scrollViewDidEndDragging:: se scrollViewDidEndDragging:: .

No quiero este comportamiento, ¿qué debo hacer para detener este comportamiento?

Cualquier persona por favor ayuda, gracias de antemano !!!

UITableViewDelegate extiende UIScrollViewDelegate. De ahí el llamado de los methods delegates.

Para detener esto, puede establecer tableView.tag = 1000; cuando asigna tableView y en los methods UIScrollViewDelegate ( scrollViewDidEndDecelerating: and scrollViewDidEndDragging:: agregue esto al principio:

 if(scrollView.tag == 1000) return; 

Porque UITableView henetworkinga de UIScrollView. Entonces muestra todas las properties y comportamientos de UIScrollView. Si no quieres esto, por favor haz una cosa.

Suponiendo que tiene otra vista de desplazamiento en su página.

en viewDidLoad o desde el XIB (si tiene su vista de tabla en el XIB), establezca una label para su vista de tabla.

en codigo,

 self.objYourTableView.tag = 101; 

luego en el delegado de vista de desplazamiento

 - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView { if(!(scrollView.tag == 101)) { // Go for your code to run. } } 

Para que su código salte si lo llama la vista de tabla. Otros casos funciona perfecto. Espero que esto te ayudará.