Herausforderung: dynamische Schriftgröße

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Herausforderung: dynamische Schriftgröße

    Hallo Zusammen,

    ich interessiere mich gerade für die Darstellung von großen Texten.
    Dazu benutze ich einen UIPageViewController, sowie die Möglichkeiten von Text Kit (NSTextStorage, NSLayoutManager und NSTextContainer). Der Textstorage enthält einen größeren Text - in etwa ein Kapitel/ Abschnitt. Das klappt soweit in einem ersten technischen Durchstich.

    Ich möchte nun dem Nutzer die Möglichkeit die Möglichkeit geben die Schriftgröße dynamisch zu ändern (auch wenn ich noch nicht weiß, wie ich das anstelle). Rein vom Konzept her sehe ich jedoch schon die Herausforderungen, dass ich mir die Stelle merken möchte, an welcher der Nutzer aufgehört hat zu lesen. Wenn der sich jedoch die Schriftgröße und damit auch die Anzahl der Seiten ändert kann ich die Seitenzahl dafür nicht nehmen. Wie kann sich das Programm die Stelle merken?

    Des Weiteren Frage ich mich, wie ich in dem oben gewählten Ansatz die Anzahl der kompletten Seiten berechnen kann. Immerhin ist im NSTextStorage nur das nächste Kapitel geladen. Sollte man eher den kompletten Text laden? Wie kalkuliere ich dann aber dazwischen eingefügt Bilder und Videos?
    Auch die Berechnung von Angabe von x in "Seite x von y" ist mir noch ein Rätsel, sobald sich die Schriftgröße geändert hat.


    Mir kommt das Gefühl, dass ich einen falschen Ansatz verfolge.
    Wie würdet ihr das angehen?
    Danke und schöne Grüße.
  • Die Stelle, die zuletzt angezeigt wurde kannst du doch als Index Speichern oder du legst ein Attribut in den Text. Das hat mit der Schriftgröße ja nichts zu tun.

    Umgekehrt ist die Seitenzahl keine Eigenschaft von dem Storage, da das ja das Model ist. Dazu musst du dich an die Viehklassen wenden. Ziemlich sicher, dass es da etwas gibt.

    Wenn du für die vorhergehenden Kapitel die Seitenzahl kennst, kannst du ja einfach addieren. Typischerweise fängt ein neues Kapitel ja auf einer neuen Seite an.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Nochmal zum speichern der aktuellen Stelle. Welchen Index meinst du denn? Ich kann mir natürlich die aktuelle Seite merken. Wenn die Schriftgröße geändert wird, stimmt der Wert jedoch nicht mehr. Natürlich kann ich mir das aktuelle Kapitel merken. Das ist allerdings eher ungenau, wenn das Kapitel z.B. 10 Seiten hat.
  • Nein, ich meine die Stelle im Storage. Das ist ja vor dem Layout, also unabhängig von irgendwelchen Seiten, Schriftgrößen usw.

    Du kannst ja etwa mit - glyphRangeForBoundingRect:inTextContainer: (NSLayoutManager) und dann - characterIndexForGlyphAtIndex: (NSLayoutManager) erfragen, welcher Zeichenindex für eine bestimmte Position besteht.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?