So erstellen Sie eine top-fade-Effekt mit UIScrollView?
Habe ich eine UIScrollView in meine app und ich habe gesehen, in einigen anderen apps, wenn der Benutzer blättert im oberen Bereich blendet auf Blättern, anstatt nur aus dissapearing.
Wirklich, ich Liebe diesen Effekt und möchte es erreichen. Irgendwelche Ideen, wie es getan werden kann?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur auf Rob ' s Super Antwort, hier ist eine Kategorie UIView,
welcher dies .. hier zu sehen auf einem kleinen UIWebView ...
(Klar zu sein, das web-Ansicht selbst ist weiß; der web-Ansicht geschieht, sitzen auf einer Grau hintergrund. So, die fadeTail Funktion im Grunde klingt die "ganze" web-Ansicht", um was auch immer geschieht, zu sein, darunter.)
Hoffen es spart jemand ein wenig Tippen, cheers
EDIT: ich habe diesen code auf github, siehe hier.
Sehen meine Antwort zu einer ähnlichen Frage.
Meine Lösung ist Unterklasse
UIScrollView
, und erstellen Sie eine Ebenenmaske in derlayoutSubviews
Methode.Den obigen code blendet den oberen und unteren Rand der
UIScrollView
von der hintergrund-Farbe zu transparent, aber dies kann leicht geändert werden, verblassen die Spitze nur (oder verblassen zu jeder Farbe, die Sie wollen).Ändern Sie diese Zeile zu verblassen, die oben nur:
EDIT 2:
Oder verblassen die oben nur durch das ändern von zwei Zeilen:
Oder verblassen die unteren nur:
Können Sie eine
CAGradientLayer
durchHinzufügen des QuartzCore.framework zu Ihrem Projekt (siehe Die Verknüpfung zur Bibliothek oder Framework).
Hinzufügen
#import
des QuartzCore-Header:Und verwenden Sie dann
CAGradientLayer
:Beachten Sie, dass dieses
CAGradientLayer
ist ein Farbverlauf aus einer Farbe mit alpha-Wert von 0.0 (z.B.clearColor
) zu einer Farbe zu einer Farbe mit alpha-Wert von 1.0 (z.B.whiteColor
), nicht nur von schwarz zu weiß. Sie können einstellen, dass dasstartPoint
(der Standardwert ist wahrscheinlich fein), und dieendPoint
zu passen, wo Sie wollen die Steigung angewendet werden.Werden und in der Regel, wenn dies mit einer
UIScrollView
, es sei denn, Sie wollen die Steigung zu Blättern Sie mit oder, Sie machen dieUIScrollView
eine Untersicht einige andereUIView
anwenden, Verlauf, dass der container-Ansicht, nicht die scroll-view selbst.Dank Fattie ' s Antwort habe ich die folgende UIView-extension, Swift, kümmert den Farbverlauf verblassen und bietet mehr Arten (unten, oben, Links, rechts, vertikal und horizontal) sowie fade-Anteil.
Für jegliche Kommentare/Empfehlungen bitte lassen Sie mich wissen, am Kernaussage die ich angelegt habe, ich versuche zu halten, die und diese Antwort ist up-to-date mit allen änderungen, die ich hinzufügen.
Die Erweiterung:
Fügen Sie eine alpha-Maske Schicht zu einer Ansicht mit Ihrem scroll-Ansicht wie diese:
wo "scrollMask" ist ein Graustufen-Bild definieren mask region: white == vollständig maskierte, schwarz == nicht maskiert und Grau == teilweise maskiert.
Effekt zu erstellen, die Sie suchen, das Bild mit der Maske sollte schwarz mit einem weißen Farbverlauf an der Spitze wie diese:
Für mehr details, schauen Sie in der Dokumentation für
CGImageMaskCreate
.Bauten wir auf Steph Sharp-code, um nur verblassen, wenn nötig. Unsere code-setup als eine statische utility-Methode anstelle einer Unterklasse, so dass wir die Wiederverwendung der Methode in unserer Unterklassen von UIScrollView und UITableView. Hier ist unsere statische utility-Methode:
Hier ist unser Gebrauch von dieser Methode.
FadingScrollView.h
FadingScrollView.m
FadingTableView.h
FadingTableView.m