Maskenüberlagerung in UIScrollView

8

Wie würden Sie ein Maskenbild auf einem UIScrollView überlagern?

Zum Beispiel habe ich ein Bild mit Schwarz links und rechts, das in der Mitte weiß wird. Ich möchte dies verwenden, damit die Elemente in meiner Bildlaufansicht allmählich zu den Seiten ausgeblendet werden und das Objekt in der Mitte vollständig undurchsichtig ist.

Der Hintergrund der Ansicht, auf die der Bildlaufbildschirm platziert wird, ist auch ein Bild (keine Volltonfarbe), das dynamisch ist und sich ändern kann.

Irgendwelche Ideen?

    
Nick 18.04.2011, 22:16
quelle

5 Antworten

4

Ihre Frage war die beste Quelle, die ich über das Grundproblem finden konnte. Daher entschloss ich mich, hier meine Lösung zu veröffentlichen.

Wenn Sie die Maske direkt zur Bildlaufansicht hinzufügen, wird die Maske aus irgendeinem Grund auf den Inhalt angewendet - i. e. Die Transparenz verschiebt sich beim Scrollen nicht. Wie in den anderen Posts vorgeschlagen, lege ich den Farbverlauf in eine Ansicht über (oder besser gesagt, enthält) die Bildlaufansicht. Daher ist scrollContainer ein UIViewObject, dessen einzige Unteransicht die fragliche Bildlaufansicht ist.

Diese Maske ist für das Scrollen von links nach rechts konfiguriert. Sie können es von oben nach unten ändern, indem Sie die Start- und Endpunkteigenschaften des Farbverlaufs ändern.

Die eine Seite unten ist, dass dadurch auch die Anzeige der Bildlaufpositionsleiste der Bildlaufansicht abgeschnitten wird. Da mein Szenario keins benötigt, ist das akzeptabel, aber die Laufleistung kann variieren.

%Vor%     
RonLugge 26.08.2012 05:07
quelle
0

Wenn Sie hinter der Bildlaufansicht einen einfarbigen Hintergrund haben, erzielen Sie eine bessere Leistung, indem Sie einfach ein Bild oberhalb der Bildlaufansicht überlagern, anstatt zu versuchen, eine Maske darin auszuführen.

    
picciano 18.04.2011 22:21
quelle
0

Versuchen Sie etwas in diesen Zeilen:

%Vor%

Dies würde Ihnen einen Farbverlauf geben, der auf der linken Seite beginnt und bis zur Mitte der gesamten Höhe reicht, vorausgesetzt, dass "mein-gradient.png" ein Bild ist, das tatsächlich einen Farbverlauf enthält.

    
Robin 18.04.2011 22:21
quelle
0

Diese Art von Manipulationen sind große Ressourcenverbraucher. Der beste Ansatz wäre (wenn es Ihr Fall erlaubt), ein Maskenbild über Ihren UIScrollView zu setzen. Der Hintergrund dieses Bildes sollte transparent sein (zB png32) und das Bild sollte ein Alpha-Gradient sein.

    
Stefan Ticu 18.04.2011 22:21
quelle
0

Verwenden Sie insertView: yourView atIndex: 0

    
Ishank Dubey 19.04.2011 09:43
quelle

Tags und Links