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!!
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.
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:
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:
3) Fijar la vista de contenido a su vista de desplazamiento padre como se menciona a continuación:
4) Establezca las métricas simuladas de su UIViewController en Freeform (esto es importante):
5) Tamaño de su contenido UIView
a la altura deseada (obviamente importante también):
Apple artículo que explica UIScrollView y Autodiseños: https://developer.apple.com/library/content/technotes/tn2154/_index.html
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));
}
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