2009-08-12 6 views
11

Was ich am liebsten tun würde, ist, dass meine Bildlaufinhalte scrollen (in der Bildlaufsteuerung) und einen statischen Hintergrund (ein Hintergrundbild) haben.Wie setze ich den Hintergrund von UIScrollView transparent?

Ich habe eine Kombination von Dingen ausprobiert, von denen keine wirklich ergibt was ich suche, nicht einmal in der Nähe wirklich.

Hat jemand das schon einmal versucht?

Antwort

2

Nach einigen schnellen googleing fand ich zwei Links, die Ihnen helfen:

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

+0

hmm. Ich bin etwas skeptisch, das wird funktionieren. aber danke, krank, ob ich Erfolg habe. –

+0

Ok. Offensichtlich ist ein transparentes UIScrollView sicherlich. Es scheint, als wäre der Inhalt meines Scroll-Viewers, was es NICHT durchscheinend macht. Wie kann ich den Inhalt (eine UIView) transparent machen? –

+2

Ok. Es setzt einfach den Inhalt von UIView selbst. backgroundColor = [UIColor clearColor]. Das war lange Zeit, um einen sehr einfachen Fehler zu beheben. –

9

Für diejenigen, die nicht mit klaren Antwort auf diese. Es geht:

Setzen Sie einen Dummy-Halter Bildansicht in die Hauptansicht und stellen Sie es auf das gewünschte Hintergrundbild oder legen Sie die Hintergrundfarbe als Muster, dann in dieser Ansicht legen Sie die Bildlaufansicht und setzen Sie den Hintergrund transparent.

Dann erhalten Sie den gewünschten Effekt wie bei Safari auf iPad zum Beispiel beim Blättern auf der Seite.

Dies ist ein Code für Monotouch, aber ist einfach zu verstehen.

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]; Funktioniert super für mich! Danke, Pavel. –

17

Dies ist eigentlich sehr einfach, ein UIScrollView erbt von einem UIView so brauchen Sie nur die backgroundColor Eigenschaft zu setzen:

aScrollView.backgroundColor = [UIColor clearColor]; 

Die obige Codezeile den Hintergrund transparent setzt, so dass Sie sehen können, bis zu dem, was du hinterlegen willst. Beachten Sie auch, dass Sie die Unteransichten, die Sie in die Bildlaufansicht einfügen, genauso machen sollten - diese Ansichten sollten auch eine transparente Hintergrundfarbe haben.

Wenn Sie ein statisches Bild möchten, verwenden Sie ein Muster wie in der folgenden Codezeile. Dies kann ein Texturbild sein, das kleiner ist als der Bildschirm, der wiederholt/gekachelt wird, oder ein Vollbild, sodass Sie keine Wiederholungen sehen.

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

Wenn man bedenkt, wie einfach diese Technik ist, denke ich, dass es entweder iOS 4+ oder sogar iOS 5+ sein muss. Kann jemand bestätigen? –

+0

Dies funktioniert nicht –

+3

Die Ansichten, die Sie in die Bildlaufansicht einfügen, müssen auch eine klare Hintergrundfarbe haben. – jhabbott

2

Haben Sie versucht,

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

Dieser arbeitete für mich ...

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