Mi UIScrollView (que contiene algunos UIControls) ya no se desplaza en iOS 8

En mi aplicación, hice un calendar que básicamente consiste en un UIScrollView que contiene algunas celdas (UIControl personalizado) para cada día, un encabezado superior que contiene algunas tags (lunes, martes, miércoles …) y, obviamente, algunos separadores (UIView de 1px espesor).

Todo funcionó bien en iOS 7, pude seleccionar las celdas presionándolas (uso el evento UIControlEventTouchUpInside para seleccionarlas) y para arrastrar la vista de desplazamiento paginada para mostrar el mes anterior o el próximo.

Pero desde que cambié a iOS 8 y descargué Xcode 6, ya no funciona. De hecho, todavía puedo seleccionar las celdas, pero la vista de desplazamiento no se desplaza (excepto si la arrastro desde el encabezado o un separador, que son vistas UIV básicas sin ninguna gestión de events táctiles).

Il comienzo a arrastrar la vista de desplazamiento desde una celda, simplemente permanezco fija.

No cambié nada, así que no entiendo por qué ya no funciona …

¡¡Por favor, ayúdame!! 🙂

Muchas gracias

PS: soy francés, lo siento por mi inglés malo

EDITAR: con iOS 8.1, el comportamiento parece ser similar al comportamiento anterior a iOS 8.0, por lo que Apple podría haberlo "arreglado". Entonces, la respuesta a continuación ya no es necesaria.


Ha habido un cambio en iOS 8, por lo que puedo ver, lo que influye en el event handling UIScrollview. UIScrollView no rastrea los toques de contenido en el caso de un UIControl.

Una cosa que hice, es subclass UIScrollView y sobreescribir touchesShouldCancelInContentView

 - (BOOL) touchesShouldCancelInContentView:(UIView *)view { return YES; } 

Véase también https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScrollView_Class/index.html

Valor de retorno: SÍ para cancelar más posts táctiles para ver, NO para que la vista continúe recibiendo esos posts. El valor devuelto pnetworkingeterminado es SÍ si la vista no es un object UIControl; de lo contrario, devuelve NO.