La vista de desplazamiento no funciona IOS 7


Tengo un scrollview dentro del cual tengo 20 UITextViews. El scrollview no funciona. He establecido lo siguiente en viewdidload.

self.MainScroll.contentSize = CGSizeMake(320, 1800);

Todavía no se desplaza. Sin embargo, si doy rebote verticalmente, simplemente rebota. Mi scrollview es un hijo de la UIView principal de dimension 320 * 600. Por favor, guía cómo activar el desplazamiento!!

Author: bharath, 2013-12-10

2 answers

Hay dos maneras de hacer que el desplazamiento funcione.

Método 1 (con código):

1) Pin UIScrollView a los lados de su vista padre, como se menciona a continuación.

introduzca la descripción de la imagen aquí

2) Establece el tamaño del contenido de tu vista de desplazamiento en viewDidLayoutSubviews:

- (void)viewDidLayoutSubviews {
    self.MainScroll.contentSize = CGSizeMake(320, 1800);
}

Aproximación 2 (IB puro, no se requiere código):

1) No es necesario establecer contentSize si se utiliza AutoLayout. Necesita anclar su UIScrollView a la vista padre como se menciona a continuación:

introduzca la descripción de la imagen aquí

2) Entonces agregue otra UIView dentro de UIScrollView para actuar como una vista de contenido y anclarla a UIScrollView y mover todos los controles dentro de esta vista de contenido:

introduzca la descripción de la imagen aquí

3) Fijar la vista de contenido a su vista de desplazamiento padre como se menciona a continuación:

introduzca la descripción de la imagen aquí

4) Establezca las métricas simuladas de su UIViewController en Freeform (esto es importante):

introduzca la descripción de la imagen aquí

5) Tamaño de su contenido UIView a la altura deseada (obviamente importante también):

introduzca la descripción de la imagen aquí

Apple artículo que explica UIScrollView y Autodiseños: https://developer.apple.com/library/content/technotes/tn2154/_index.html

 102
Author: Yas T.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-28 15:23:26

Actualice el tamaño del contenido después de algún retraso como se muestra a continuación.

- (void)viewDidLayoutSubviews {
    [self performSelector:@selector(updateContentSize)
               withObject:nil
               afterDelay:0.25];

}

-(void)updateContentSize{
    UIView *viewLast = [viewContent viewWithTag:100];
    scrollViewAd.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, CGRectGetMaxY(viewLast.frame));
}
 -1
Author: pkc456,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-18 09:00:23