Fehler in UITextView und ScrollEnabled unter iOS 7, wenn der Text '\n' enthält

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

  • Fehler in UITextView und ScrollEnabled unter iOS 7, wenn der Text '\n' enthält

    Guten Abend,


    ich habe gerade bemerkt, dass es unter iOS 7 ein merkwürdiges Verhalten der UITextView gibt. Unter iOS 5 und iOS 6 funktionierte alles ohne Probleme. Die UITextView in in einer UITableViewCell eingebettet. Das Problem ist nicht das Scrollen, sondern die Darstellung des Textes.

    Folgender Text sei gegeben: @"text1 \n text2 \n text3 \n text4 \n text5"

    - ScrollEnabled = YES


    Unter iOS 6 wurde der Text ohne Probleme in der UItextView dargestellt und ich konnte auch durch den Text scrollen.

    Ab iOS 7 wird nur ein SubString bis '\n' (text1 \n) in der UITextView dargestellt. Wenn ich in der TableView scrolle und die UItextView wieder sichtbar wird, wird der Substring um ein weiteres Stück erweitert (text1 \n text2 \n) usw.

    Sobald alle Substrings in der UItextView sichtbar sind, kann ich auch in der UITextView scrollen. ODER ich tappe in die UITextView um einen weiteren Text einzutippen, dann wird vorher auch der komplette Text in der UITextView angezeigt. Die Zeilenumbrüche werden dargestellt. Wenn ich ScrollEnabled = NO setze, dann wird der komplette Text in die UITextView geladen und korrekt dargestellt - womit es zu keinerlei Darstellungsfehler des Textinhaltes kommt!


    Ich hoffe, ich konnte die Problematik einigermaßen gut beschreiben.


    Das ist doch alles sehr sonderbar. In diversen Foren habe ich auch gelesen, dass die UITextView unter iOS 7 einige Bugs haben soll.

    Könnt ihr mir bei dem Fall bitte irgendwie helfen?


    Was kann ich unter iOS 7 tun, um diesen Bug zu fixen?



    Vielen Dank im Voraus!
  • Hallo,

    hast Du eine Unterklasse von der UITableViewCell erstellt und layoutSubViews überschrieben?
    Besteht die Möglichkeit dass Du bei jedem Aufruf von layoutSubViews die Höhe des UITextViews ein bisschen mehr erhöhst?
    Wenn nein, dann würde ich ein einfaches Beispielprojekt machen und bei Apple einen Bugreport einstellen.


    Jürgen
  • Ich habe mir das noch einmal angeschaut.

    Ich weiß nun auch wieso es unter iOS 7 knallt.


    Ich füge ein UITextView samt Text und ScrollEnabled := YES der Cell als SubView hinzu.

    Danach ändere ich den Frame des UITextView. Ich passe mein UITextView in der Breite an: [self.textView setFrame:frame] - vorher kann ich die Breite nicht festlegen, weil die Breite auch von anderen UI's abhängig ist.


    Unter iOS 5 und iOS 6 funktioniert das auch.

    Unter iOS 7 hingegen wird dann der nicht sichtbare Text in der UITextView abgeschnitten.


    Ich beobachte auch folgendes Verhalten der UItextView:

    iOS 5 und iOS 6 > Wenn ich in die UItextView einen Text eingebe und ENTER drücke, dann spring der Cursor eine Zeile tiefer.
    iOS 7 > Wenn ich in die UITextView einen Text eingebe und ENTER drücke, dann springt der Cusor nicht sofort in die nächste Zeile, sondern erst, wenn ich ein Zeichen eintippe.

    Ich denke, dann ist auch schon die Problematik. Ein '\n' erkennt die UItextView erst als neue Zeile, wenn irgendein Zeichen danach folgt, bei der Eingabe.


    Wie kann ich das Verhalten der UITextView von iOS 5 und iOS 6 unter iOS 7 erzwingen?


    Ich hoffe, ihr könnt mir dabei irgendwie helfen, das betrifft ja auch die Allgemeinheit.