ios - UIScrollView no se desplaza con gran altura
objective-c (1)
Tengo el controlador con UIScrollView en él, y en la versión iPad no hay desplazamiento de arriba a abajo. Establecí explícitamente una altura de tamaño de contenido así:
CGSize newSize = CGSizeMake(self.view.bounds.size.width-4, 2500);
// assume self is the content view
CGRect newFrame = (CGRect){CGPointZero,newSize}; // Assuming you want to start at the top-left corner of the scroll view. Change CGPointZero as appropriate
[self.mainScroll setContentSize:newSize];
Incluso en el depurador, cuando scrollView
descripción de scrollView
veo lo siguiente:
<UIScrollView: 0x7fc12486e400; frame = (0 0; 768 960); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x7fc1259cf830>; layer = <CALayer: 0x7fc1259a45e0>; contentOffset: {0, 765}; contentSize: {764, 2500}>
(lldb)
Como puede ver, el tamaño del contenido está establecido en 2500, sin embargo, no puedo desplazar nada. Y, obviamente, compruebo, ese desplazamiento habilitado es SÍ.
Además, la vista de desplazamiento principal está vinculada a la vista principal con restricciones como arriba-izquierda-derecha-abajo con valor de 0. Pero, incluso cuando aumente la altura de la vista propia, aún así, no hay efecto.
¿Cómo forzarlo a desplazarse?
El problema es que estás usando el diseño automático. Un intento de establecer, en código, el contentSize
de contentSize
de una vista de desplazamiento en el diseño automático fallará. Desplácese por el tamaño de contenido de vista en diseño automático de una manera completamente diferente: utiliza como subvista inmediata única de la vista de desplazamiento una vista de contenedor, clasificada por restricciones internas al tamaño del contenido y fijada en los cuatro lados a la vista de desplazamiento con una constant
de cero .