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?
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%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.
Tags und Links objective-c iphone