2009-10-20 14 views
35

He estado teniendo dificultades para encontrar buenos ejemplos de UIScrollView. Incluso la Suite UIScrollView de Apple me parece un poco deficiente.Aprendiendo los conceptos básicos de UIScrollView

Estoy buscando un tutorial o conjunto de ejemplos que me muestre cómo crear algo similar a la pestaña de Safari de iPhone desplazándose, cuando se aleja de una ventana del navegador y se puede desplazar a otras.

Pero me está costando mucho mostrar cualquier vista anterior en una vista de desplazamiento. Tengo una vista configurada con una imagen, pero cuando la agrego a la vista de desplazamiento, solo obtengo un rectángulo negro, sin importar lo que pongo en la vista que agrego.

¡Cualquier enlace o fragmento de código sería genial!

+0

¿Puede explicar qué quiere decir por el desplazamiento de la pestaña iPhone Safari? ¿Es eso después de que haces clic en el botón de la página inferior derecha y luego obtienes un UIPageControl que te permite pasar a otras ventanas del navegador? – mahboudz

Respuesta

46

que aquí hay una scroll view guide from Apple

Los pasos básicos son:

  1. Crear una y una vista UIScrollView contenido que desea colocar en el interior (en su caso, un UIImageView).
  2. Haga que el contenido vea una subvista de la vista de desplazamiento.
  3. Establezca el tamaño del contenido de la vista de desplazamiento en el tamaño del marco de la vista de contenido. Este es un paso muy importante que las personas a menudo omiten.
  4. Coloque la vista de desplazamiento en una ventana en alguna parte.

En cuanto al comportamiento de paginación, echa un vistazo a la propiedad de UIScrollView pagingEnabled. Si necesita desplazarse por menos de una página completa, necesitará jugar trucos con clipsToBounds, más o menos lo que está sucediendo en this StackOverflow question.

+0

EDITAR: encontré mi pregunta aquí: http://stackoverflow.com/questions/1135163/how-do-i-use-uiscrollview-in-interface-builder - y, por desgracia, la respuesta es "no, Apple se olvidó de habilitarlo" . COMENTARIO ORIGINAL: ¿Hay alguna forma de realizar el PASO 3 anterior desde Interface Builder? Lo he estado haciendo en código, sin poder encontrar un camino en IB. Es extraño, básicamente, parece que Apple te está forzando a escribir código si alguna vez quieres que UIScrollView realmente funcione. – Adam

+3

Nota rápida: el enlace al ejemplo ya no es válido y ahora está redirigiendo a varios sitios spam. –

+2

Paso 3: para establecer el tamaño del contenido, agregue '[self.scrollView setContentSize: CGSizeMake (contentView width, contentView height)];' en el método 'viewDidAppear'. – jithin

16
UIScrollView *scrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 

NSInteger viewcount= 4; 
for (int i = 0; i <viewcount; i++) 
{ 
CGFloat y = i * self.view.frame.size.height; 
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, y,self.view.frame.size.width, self .view.frame.size.height)];  
view.backgroundColor = [UIColor greenColor]; 
[scrollview addSubview:view]; 
[view release]; 
} 
scrollview.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height *viewcount); 

Para obtener más información Create UIScrollView programmatically

+0

"CGFloat y = i * self.view.frame.size.height;" da 0 para todas las iteraciones. –

Cuestiones relacionadas