2009-08-12 13 views
11

Quello che alla fine mi piacerebbe fare è avere il contenuto della mia vista di scorrimento che scorre (nel controllo della vista a scorrimento) e avere uno sfondo statico (un'immagine di sfondo).Come si imposta lo sfondo di UIScrollView per essere trasparenti?

Ho provato una combinazione di cose, nessuna delle quali offre davvero ciò che sto cercando, nemmeno vicino davvero.

Qualcuno ha tentato questo prima?

risposta

2

Dopo qualche rapido googleing ho trovato due link che vi aiuteranno a:

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

+0

hmm. sono piuttosto scettico questo funzionerà. ma grazie, vedo male se trovo il successo. –

+0

Ok. è evidentemente un UIScrollView trasparente. Sembra che il contenuto del mio visualizzatore di diapositive sia quello che non lo rende NON traslucido. Come posso rendere il contenuto (un UIView) trasparente? –

+2

Ok. sta semplicemente impostando il contenuto di UIView self.backgroundColor = [UIColor clearColor]. è stato per molto tempo a sistemare un bug molto semplice. –

9

Per coloro che non hanno una risposta chiara a questa. Funziona:

metti una vista immagine fittizia sul mainview e impostala sull'immagine di sfondo desiderata o imposta il suo backcolor come pattern, quindi all'interno di questa vista metti la scrollview e imposta il suo sfondo trasparente.

Quindi si ottiene l'effetto desiderato come con Safari su iPad per esempio sullo scorrimento pagina.

Questo è un codice per Monotouch, ma è semplice da capire.

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]; Funziona alla grande per me! Grazie Pavel. –

17

Questo è in realtà molto semplice, a UIScrollView eredita da una UIView quindi solo bisogno di impostare la proprietà backgroundColor:

aScrollView.backgroundColor = [UIColor clearColor]; 

La riga di codice precedente imposta lo sfondo trasparente in modo da vedere attraverso tutto quello che vuoi mettere dietro. Si noti inoltre che si dovrebbe fare la stessa cosa per le viste secondarie che si inseriscono all'interno della vista di scorrimento: anche quelle viste dovrebbero avere un colore di sfondo trasparente.

Se si desidera un'immagine statica, utilizzare un motivo come nella riga di codice riportata di seguito. Questa può essere un'immagine di trama più piccola dello schermo che verrà ripetuta/affiancata o un'immagine a schermo intero in modo da non visualizzare alcuna ripetizione.

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

Considerando quanto sia facile questa tecnica, penso che debba essere iOS 4+ o anche iOS 5+. Qualcuno può confermare? –

+0

non funziona –

+3

Anche le viste inserite all'interno della vista di scorrimento devono avere un colore di sfondo chiaro. – jhabbott

2

Hai provato questo,

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

Questo ha funzionato per me ...

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