Ich bin auf der Suche nach praktischer Richtung bei der Erstellung einer <GradientText />
Komponente in React Native. Ich habe dies für die Web-Seite der Dinge erstellt, mit -webkit-background-clip
und CSS linearen Gradienten für Webkit-Browser und standardmäßig auf SVG-Masken für Nicht-Webkit-Browser (die nur zwei Farbstopps unterstützt, kann die Webkit-Version offensichtlich mehr unterstützen).Gradient Text Component mit React Native
Ich würde gerne lernen, wie dies mit React Native zu tun. Hier ist mein done critera:
- Unterstützung zwei-Stop-Farbverläufe (mehr als zwei, wenn ich es bekommen kann).
- Die Farbverlaufsrichtung kann aus beliebigen Winkeln oder einer Zeichenkette wie "nach oben", "nach unten", "nach links" oder "nach rechts" bestehen.
- Die Farbtrübung sollte unterstützt werden, daher kann die Komponente idealerweise eine HEX- oder RGBA-Farbe annehmen.
Die resultierende API sollte wie folgt aussehen:
<GradientText colors={['#313182', 'rgba(244,33,233,.5)']} direction='<to top> | <185deg>'>Hello!</GradientText>
Dies ist, wo es für mich schwierig wird. Ich weiß genug über iOS Entwicklung gefährlich und nichts über Android Entwicklung zu sein, aber für iOS, scheint es, wie die folgenden funktionieren könnte, aber ich bin mir nicht sicher über Best Practices:
- Subclass die
<Text>
Komponente der Native React . - Erstellen Sie eine
UIImage
für das Farbverlaufsbild. - Verwenden Sie dieses Bild als Musterfüllung für den gerenderten Text.
Etwas wie this.
Dann würde ich gerne das gleiche tun on Android using a Shader
. Auch hier suche ich nach Best Practices, wie das geht.
Endlich, meine Hoffnung ist, dass ich im Grunde alle Komponenten der <Text>
-Komponente erben kann, und nur Pfeffer in meinen eigenen Ergänzungen für die Beeinflussung der Farbe. Ich bin neugierig zu wissen, wie realistisch das wäre und vielleicht ein paar Fallstricke, die ich nicht in Betracht gezogen habe (oder wahrscheinlich nicht kenne).
Ich bin nicht auf der Suche nach jemanden, der die Arbeit für mich erledigt, aber ich suche nach praktischen Tipps, ein paar Ideen, wo man nach Informationen suchen und das Projekt richtig strukturieren kann, damit ich am Ende kann es an die Community zurückgeben. Vielen Dank!
wie bist du damit klar gekommen? –
Kam über diese Bibliothek auf Github, die ein Ausgangspunkt für die iOS-Seite der Dinge sein kann, reagieren-native-Fancy-Label (https://github.com/MattFoley/react-native-fancy-label) – jaws