2009-08-12 35 views
11

Lo que en última instancia ME ENCANTARÍA hacer es desplazar el contenido de mi vista de desplazamiento (en el control de vista de desplazamiento) y tener un fondo estático (una imagen de fondo de pantalla).¿Cómo configuro el fondo de UIScrollView para que sea transparente?

He intentado una combinación de cosas, ninguna de las cuales realmente da lo que estoy buscando, ni siquiera cerca realmente.

¿Alguien ha intentado esto antes?

Respuesta

2

Después de algún Googleing rápida me encontré con dos enlaces que le ayudarán a:

Google Groups discussion on this question
Blog post on how to do this.

+0

hmm. Soy un tanto escéptico, esto funcionará. pero gracias, no veo si encuentro el éxito. –

+0

Ok. así que aparentemente es un UIScrollView transparente sin duda. Parece que el contenido de mi visor de desplazamiento es lo que lo hace NO translúcido. ¿Cómo puedo hacer que el contenido (un UIView) sea transparente? –

+2

Ok. simplemente configura el contenido de U.View self.backgroundColor = [UIColor clearColor]. eso fue mucho tiempo solucionando un error muy simple. –

9

Para los que no tienen respuesta clara a esta. Va:

ponga una imagen de soporte ficticia en la vista principal y configúrela en la imagen de fondo deseada o establezca su color de fondo como patrón, luego, dentro de esta vista, coloque la vista de desplazamiento y establezca su fondo en transparente.

Luego obtiene el efecto deseado como con Safari en iPad, por ejemplo, en desplazamiento de página.

Este es un código para Monotouch, pero es fácil de entender.

this.View.BackgroundColor = UIColor.FromPatternImage (UIImage.FromFile ("Images/About-bg0.jpg")); 
scrollView = new UIScrollView (new RectangleF (0, 0, 320, 450)); 
     scrollView.ContentSize = new SizeF (320, 640 + 508 + 1000); 
     //scrollView.BackgroundColor = UIColor.FromPatternImage (UIImage.FromFile ("Images/About-bg0.jpg")); 
     scrollView.BackgroundColor = UIColor.Clear; 
+1

self.oneColumnScrollView.backgroundColor = [UIColor clearColor]; ¡Funciona genial para mí! Gracias Pavel. –

17

Esto es realmente muy fácil, un UIScrollView hereda de una UIView por lo que sólo necesitan para establecer el backgroundColor propiedad:

aScrollView.backgroundColor = [UIColor clearColor]; 

La línea de código anterior produce el fondo a transparente para que pueda ver a lo que sea que quieras dejar atrás. Tenga en cuenta también que debe hacer lo mismo con las subvistas que coloca dentro de la vista de desplazamiento; esas vistas también deben tener un color de fondo transparente.

Si desea una imagen estática, use un patrón como en la línea del código a continuación. Esta puede ser una imagen de textura más pequeña que la pantalla que se repetirá/mosaico, o una imagen de pantalla completa para que no vea ninguna repetición.

aScrollView.backgroundColor = [UIColor colorWithPatternImage:anImage]; 
+0

Considerando lo fácil que es esta técnica, creo que debe ser iOS 4+ o incluso iOS 5+. ¿Alguien puede confirmar? –

+0

esto no está funcionando –

+3

Las vistas que pones dentro de la vista de desplazamiento también deben tener un color de fondo claro. – jhabbott

2

Has probado esto,

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"content.png"]]; 
1

Ésta funcionó para mí ...

self.scrollView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tileableImage.png"]]; 
Cuestiones relacionadas