so habe ich überall überprüft und es ist so schwer, dieses herauszufinden. Ich schreibe eine App in RubyMotion mit RedPotion, aber die meiste Hilfe, die ich hier brauche, ist mit Ruby. Die App ist so ziemlich eine Buch-App, also versuche ich herauszufinden, wie man Text richtig speichert. Grundsätzlich habe ich eine bestimmte Anzahl von Zeichen pro Zeile und nur 17 Zeilen, die ich auf dem Bildschirm verwenden kann. Sobald dies voll ist, möchte ich, dass der Rest des Textes zur Verwendung mit der gleichen Methode gespeichert wird, damit die nächste Gruppe auf dem Bildschirm erscheint, wenn die Seite umgedreht wird. Dann, wenn der Benutzer zurück wischt, damit der Text auch zurückgeht. Ich habe Arrays, Hashes ausprobiert. Verschiedene Methoden. Seit ungefähr 3 Wochen verrückt nach diesem einen Problem. Jeder kann mit einer Ruby-Methode helfen oder zwicken meins zu arbeiten?Kann mir jemand helfen zu verstehen, wie man Text recycelt?
def on_load
@texts = [
"In the beginning of God's creation of the heavens and the earth.\nNow the earth was
astonishingly empty, and darkness was on the face of the deep, and the spirit of God was
hovering over the face of the water.\nAnd God said, 'Let there be light,' and there was light.
\nAnd God saw the light that it was good, and God separated between the light and between the darkness.
\nAnd God called the light day, and the darkness He called night, and it was evening and it was morning,
one day.\nAnd God said, 'Let there be an expanse in the midst of the water, and let it be a separation
between water and water.'"
]
@recycle = [ @texts[ 0 ] ]
@page_idx = 0
@header = append!(UIImageView, :header)
@text_view = append!(UITextView, :text_view)
text_view(@texts[ 0 ])
@text_view.on(:swipe_right) do |sender|
recycle_text_forward(@recycle[ -1 ])
end
@text_view.on(:swipe_left) do |sender|
recycle_text_back(@recycle[ @page_idx ])
end
end
def text_view(text)
page_words = text.split(' ')
number_of_lines_idx = 17
each_line_chars = 27
chars = ""
setter = ""
idx = 0
all_idx = page_words.length - 1
@text_view.text = ""
while number_of_lines_idx != 0
until chars.length >= each_line_chars
break if page_words[ idx ] == nil
chars << page_words[ idx ] + " "
chars << "\n" if chars.length >= each_line_chars
idx += 1
end
break if page_words[ idx ] == nil
number_of_lines_idx -= 1
if number_of_lines_idx == 0
@recycle << page_words[ idx..all_idx ]
@page_idx = @recycle.length - 2
end
setter = chars
chars = ""
@text_view.text += setter
end
end
def recycle_text_forward(text)
text_view(text.join(' '))
end
def recycle_text_back(text)
text_view(text)
end
Wow! Herzlichen Dank für alles. Ich kann dir nicht sagen, wie sehr ich deine Antwort schätze und so schnell auch! Dies hilft besonders beim Neuformatieren. Das Einzige, was übrig bleibt, ist, dass ich die Daten speichere. Diese 17 Zeilen sind nur ein Teil der gesamten Textmenge. Also muss ich den Rest des Textes speichern können, wenn der Benutzer wischt, damit ich die nächsten 17 Zeilen bekommen kann. Aber wenn der Benutzer nach rechts wischt, muss er auch zu den vorherigen 17 Zeilen zurückkehren. Ich hoffe ich mache ein bisschen mehr Sinn. –
Es ist bereits im Ergebnis der letzten Zeile gespeichert. Es erzeugt ein Array von _screens_. Probieren Sie es selbst aus. – mudasobwa
Wow! Ich wünschte ich wäre so schlau wie du. Wirklich, dass lol. Ich danke dir sehr!!!!!! –