El seguimiento de eventos en UIScrollview bloquea el hilo principal. Estoy usando el hilo principal para ejecutar un temporizador que impulsa algunas animaciones, el resultado es que cualquier interacción del usuario con la vista desplazable (arrastrándolo hacia arriba o hacia abajo, etc.) hace que la animación (ejecutándose en el runloop principal) se congele. ¿Hay alguna forma de evitar esto?El seguimiento de eventos en UIScrollView bloquea el hilo principal. ¿Alguna solución?
He intentado con RTFM sobre NSRunloop (CFRunLoopAddCommonMode y otros), pero es bastante escueto, lo que me lleva a pensar que es mejor evitar retocar las prioridades del evento/las prioridades del subproceso. Alguien tiene alguna idea?
Solo puede hacer cosas de UI en el hilo principal, por lo que no se aplicaría el problema con las prioridades de hilo. Tengo curiosidad: ¿sabes si los NSTimers dejan de disparar o los disparos de los temporizadores, pero se niegan a aplicar los cambios que realizas en la animación? ¿La animación está * * en UIScrollView, o * dentro * de la vista de desplazamiento? es decir, ¿está tratando de animar y cambiar lo mismo que el scrollview scrolling está tratando de cambiar? (Scroll view rects, etc.)? – Brad
Gracias, Brad: lo que esperaba (probablemente peligrosamente) era agregar el modo EventTracking al runloop principal, lo que le permitía continuar ejecutándose al mismo tiempo que el runloop de EventTracking. La animación que se está bloqueando se está haciendo realmente en una vista completamente diferente a la que contiene la vista de desplazamiento. Para responder a su otra pregunta, el NSTimer deja de disparar por completo. Parece completamente bloqueado por el negocio de mayor prioridad de rastrear los eventos del usuario en el UIScrollView (no relacionado). –