2011-07-22 21 views
5

Tengo una vista donde algunas UITextViews se agregan a un UIScrollView. Cuando aparece la vista, todos los datos se cargan correctamente en scrollView, pero también tengo un tableView donde puede seleccionar diferentes impuestos para un artículo. Una vez que selecciona un elemento en esa vista de tabla, el scrollView se borra y se monta de nuevo con los nuevos elementos. Rellena el scrollView con los datos correctos, pero una vez que se llena, se desplaza aleatoriamente a cualquier posición de la vista de desplazamiento en lugar de desplazarse sin animación hacia la parte superior. He comprobado mi código y después de montar el ScrollView que utilizo:UIScrollView se desplaza aleatoriamente al agregar contenido

[self.scrollPreciosTarifasGUI scrollRectToVisible:CGRectZero animated:NO]; 

También he intentado usar:

[self.scrollPreciosTarifasGUI scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO]; 

pero he el mismo resultado.

¿Cómo puedo solucionar esto?

Respuesta

2

tuve problema muy similar con el desplazamiento aleatorio y UITextViews. Realmente no pude encontrar ninguna solución, pero por casualidad coloqué una vista de desplazamiento en otra y ¡funcionó!

Esa es mi código:

//newDetailViewController.view is uiscrollview type 
[self.mainScrollView addSubview:newDetailViewController.view]; 
[newDetailViewController.view setFrame:CGRectMake(-2, 40, 800, 3300)]; 
+0

¿Quiere decir que resolverlo colocando mi scrollView en otro scrollView? – Alex

+0

funcionó para mí. Aunque no entiendo por qué. –

+0

Eso resolvió mi problema. Agregué todos los datos a un nuevo scrollView creado por código y una vez que se llenó, lo agregué al scrollView "principal". ¡Gracias! – Alex

0

probar esto es sólo una conjetura salvaje

[self.scrollPreciosTarifasGUI scrollRectToVisible:CGRectMake(0, 
                  0, 
                  self.scrollPreciosTarifasGUI.frame.size.width, 
                  self.scrollPreciosTarifasGUI.frame.size.height) 
           animated:NO]; 
+0

Lo sentimos, pero sigue sin funcionar. Tengo el mismo problema pero gracias por responder! – Alex

1

La solución publicado en http://opensourcehacker.com/2010/08/30/uiscrollview-setcontentoffset-random-scrolling-on-ios-4/ funcionó de maravilla para mí.

// necesidad de hacer esto en IOS 4 o la vista se desplaza a la posición aleatoria [ScrollView setContentSize: CGSizeMake (0,0)];

// vista de actualización con nuevos contenidos [auto updateContent: ...]

// Queremos el fin de estar en la cima cada vez que se muestra [ScrollView setContentOffset: CGPointMake (0,0) animado: NO];

// Y configure el tamaño correcto para habilitar el desplazamiento. // contentHeight se actualiza al configurar el contenido de las subvistas. [scrollView setContentSize: CGSizeMake (self.view.frame.size.width, contentheight)];

+0

Agregar un UIScrollView adicional en la jerarquía no funcionó para mí, pero establecer un tamaño de contenido cero antes de cambiar UITextView y luego volver a establecer el tamaño del contenido me funciona. – Bram

Cuestiones relacionadas