Los límites cambian automáticamente en UIScrollView con inserciones de contenido

Estoy usando un UIScrollView como mi vista de desplazamiento de paginación,pagesScrollView. Dentro de eso, pongo UIScrollViews individuales que se usan exclusivamente para hacer zoom. Dentro de cada uno de ellos, tengo una vista que es el elemento de la página que debe ser ampliable. Todo eso está dentro de un UINavigationController con una barra de navegación translúcida.

MipagesScrollView tienecontentInset.top = 64 ybounds.origin.y = -64 (eso me parece extraño, pero eso es lo que el sistema está configurando automáticamente para mí), y esto funciona bien. ¡Mi pantalla se ve genial!

Sin embargo, después de desplazar elpagesScrollView incluso un poquito, apenasscrollViewWillEndDragging se llama, elpagesScrollView comienza un cambio animado debounds.origin.y = -64 abounds.origin.y = 0 lo que hace que la barra de navegación oscurezca los elementos de mi página.

A la izquierda es lo que parece cuando se carga, a la derecha es lo que parece después de arrastrar solo unos pocos píxeles y luego soltarlo, se desliza hacia arriba debajo de la barra de navegación (porque los límites.origin.y va a 0) .

El problema es que no tengo ningún código que altere los límites y no tengo ningún código en los diversos métodos de delegado de desplazamiento que hacen algo. He agregado un montón de métodos de delegado de desplazamiento y solo agregué NSLog () s para que pueda averiguar cuándo / dónde está ocurriendo el cambio, pero no está sucediendo en ninguna parte de mi código.

Entonces, no sé qué código puedo mostrarle para ayudarlo a ayudarme.

EDITAR: Construí un nuevo proyecto desde cero para eliminar todas las demás variables. Puse un UIViewController desnudo en un UINavigationController. Puse un UIScrollView en mi vista del tamaño completo de la vista. El siguiente código es el proyecto completo.

¡Resulta que el problema (descrito a continuación) solo aparece una vez que PAGING ESTÁ HABILITADO en UIScrollView! Wtf? :)

Aquí hay un enlace para descargar un proyecto básico con solo unas pocas líneas de código que demuestra el problema. Simplemente haga clic en la vista de desplazamiento y verá que cambia a medida que cambian los límites.http://inadaydevelopment.com/stackoverflow/WeirdScrollViews.zip

¿Cómo puedo habilitar la paginación en mi vista de desplazamiento sin que los límites se vuelvan locos durante el desplazamiento y el cambio de todo debajo de la barra de navegación?

Es posible configurar la barra de navegación en opaco y se evita el problema, pero lo ideal es tener un comportamiento estándar de iOS7 para que después de que la vista de contenido se amplíe, ENTONCES se permita que el contenido esté debajo de la barra de navegación y se muestre a través de la translucidez normalmente.

- (void) viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    NSArray *colors = @[
                        [UIColor blueColor],
                        [UIColor orangeColor],
                        [UIColor magentaColor],
                        ];

    NSArray *zoomerColors = @[
                        [UIColor greenColor],
                        [UIColor yellowColor],
                        [UIColor purpleColor],
                        ];


    self.scroller.pagingEnabled = YES;

    [self.scroller setContentSize:CGSizeMake(self.scroller.frame.size.width*colors.count, self.scroller.frame.size.height)];

    CGRect subviewFrame = CGRectMake(0, 0, 160, 240);
    for (int index=0; index < colors.count; index++) {
        UIColor *color = [colors objectAtIndex:index];
        UIColor *zoomerColor = [zoomerColors objectAtIndex:index];

        UIView *subview = [[UIView alloc] initWithFrame:subviewFrame];
        subview.backgroundColor = color;

        CGRect zoomerFrame = CGRectMake(index*self.scroller.frame.size.width, 0, self.scroller.frame.size.width, self.scroller.frame.size.height);

        UIScrollView *zoomer = [[UIScrollView alloc] initWithFrame:zoomerFrame];
        [zoomer addSubview:subview];
        zoomer.backgroundColor = zoomerColor;

        [self.scroller addSubview:zoomer];

    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta