2016-06-29 7 views
0

Ich baue eine experimentelle Lese-App, wo die Textpassage als eine einzige Textzeile auf dem Bildschirm dargestellt wird. Der Benutzer kippt hin und her, um den Textstreifen nach vorne oder nach hinten zu bewegen. Was ich bisher versucht ist:Swift: Eine einzige, lange Reihe von Textneigungsphysik geben

  1. eine UILabel in einem UIScrollView Platziert und manuell die Scroll der Berechnung der Offset neu auf der aktuellen Neigung abhängig. Der Text scrollt in dieser Implementierung in einer unangenehmen, ruckartigen Bewegung, wahrscheinlich weil die aktuelle Beschleunigungsgleichung nur eine lineare Funktion ist. Außerdem würde ich das Rad lieber nicht neu erfinden, da das Sprite-Kit bereits die Neigungsphysik perfektioniert hat, aber es ist einfach nicht auf Textobjekte anwendbar.

  2. Um Sprite Kits butterweiche Neigung zu verwenden, platzierte ich meinen Text in einem SKLabelNode und ließ seine X-Koordinaten mit einem SKSpriteNode übereinstimmen, den ich Tilt-Physik gab. Dies funktionierte sehr gut, bis ich den Text eines Absatzes innerhalb von SKLabelNode hinzugefügt habe. Dann verwandelt er sich in ein schwarzes Rechteck ...

Stack-Überlauf Diskussionen fand ich zu dem Schluss gekommen, dass SKLabelNode nicht in der Art und Weise verwendet werden, bedeutete, dass ich wünschen und haben mehrzeilige Implementierungen vorgeschlagen, oder String-Bildumwandlung in Bitmap. Multiline ist keine Option für die Art, wie meine Lese-App funktionieren soll.

  1. fand ich den Code in How do I add text to an image in iOS Swift bespannen zu implementieren, in Bitmap-Bildumwandlung dann eine SKSpriteNode, dass Bild zu machen. In dem Moment, in dem die Bildbreite 2000 überschreitet (nur genug Platz für einen kurzen Satz in 50-Punkt-Schrift), wird es zu einem schwarzen Rechteck. Ich stelle mir vor, dass der Text in kleinere Stücke, die in dieses 2000-Limit passen, den Code wirklich komplizieren und Benutzerstatistiken wie Wörter pro Minute viel schwerer zu berechnen machen.

Screenshot.

An der Spitze ist, was ich der Text aussehen soll (Benutzer kippt nach links/rechts Vor/Zurück zu lesen), und der schwarze Streifen auf der Unterseite ist das schwarze Rechteck, das, wenn erscheint ? die Breite des Textes viel zu lang ist :(

jemand irgendwelche Vorschläge für Hat was ich sonst noch versuchen könnte, noch einmal, meine Anforderungen sind:

  • die Zeichenfolge als lange, Single vorgelegt werden muss Linie auf dem scr een
  • Der Benutzer kippt das Gerät vorwärts/rückwärts
  • Die Beschleunigung zu lesen ist glatt, so dass es einfach auf den Augen ist :)

Antwort

0

Vielleicht können Sie versuchen, einen Satz zu einem Zeitpunkt in eine SKLabelNode geladen. Sie haben auch eine zweite SKLabelNode, um als der On-Deck-Cache zu fungieren. Wenn sich eine SKLabelNode aus dem Bildschirm bewegt, können Sie sie am Ende des aktuell auf dem Bildschirm angezeigten SKLabelNode positionieren. So funktioniert eine Tabellenansicht in UIKit. Der einzige Unterschied hier ist, dass Ihre "Tabellenzellen" horizontal scrollen, und Sie müssen die Arbeit ausführen, um sie zurückzusetzen, nachdem sie sich vom Bildschirm entfernt haben.

Verwandte Themen