Renderizar un arbitrariamente grande NSAttributedString

Necesito renderizar un (arbitrariamente grande) NSAttributedString , en este caso text con color ANSI de una session de telnet (arbitrariamente larga). El text no necesita ser editable en línea. He explorado algunas opciones:

  • UITextView parece tener, de lejos, el mejor performance y, dado que me dirijo a iOS 6, es muy fácil de usar con cadenas atribuidas. Sin embargo, la vista de text se vuelve progresivamente más lenta a medida que se agrega más text, ya que choca con un analizador HTML DOM cada vez que setAttributedString: a setAttributedString: y bloquea la interfaz de usuario.
  • He probado algunos frameworks de procesamiento de text de núcleo, TTTAttributedLabel y OHAttributedLabel , que también se hacen progresivamente más lentos con más text. Para ser justos, ¡son tags que probablemente no sean para este tipo de cosas!
  • UIWebView ( gag ) tiene algunos problemas con la rotation y mantiene el tamaño y el encuadre adecuados, pero creo que podría UIWebView . Puedo convertir mi cadena atribuida a HTML y usar JavaScript para agregar (inyectar) nuevo text a medida que se recibe. Sorprendentemente buen desempeño aquí.
  • Un amigo sugirió que piense en la position de desplazamiento actual del usuario como una window de visualización en un documento más grande y (probablemente con el text central) renderizar solo la parte visible de mi cadena atribuida. Estoy preocupado acerca de cómo esto podría afectar el performance de desplazamiento.

Entonces me dirijo a ti, valientes interconexiones. Ideas para un desarrollador independiente? ¿Es una webview mi mejor apuesta?

Puede usar un UITableView y dividir NSAttributedString en una matriz de subcadenas que encajaría con el ancho de label de cada celda. La fuente de datos de la vista de tabla se indexará en la matriz de subcadenas para determinar qué línea de la cadena original debe colocarse en cada celda.