2013-08-15 2 views
0

Мне нужно представить текущий текстовый поток в моих приложениях, я получил рабочий текст с моего сервера, и я могу увидеть его с помощью NSLog, что поток работает. Текст меняется и имеет новую строку каждую секунду. Поскольку я новичок в iOS, я уже провел исследование, и есть пары, которые я все еще путаю:Представление текстового потока в iOS

1.Between UITableView и UIScrollView, какой из рекомендованных вами характеристик? 2.Что такое правильная библиотека для использования? Это похоже на NSStream или я просто представляю ее на свой UITable?

Поймите, если у вас есть код фрагмента или учебник для этого.

Благодаря ...

ответ

0

У меня нет времени, чтобы написать код, так как это не просто.

Вы захотите создать UITextView и добавить строку в текстовое представление при получении нового содержимого.

UITextView - это подкласс UIScrollView, поэтому вы можете использовать все операции UIScrollView, включая прокрутку вниз, по мере добавления нового содержимого. Это лучший способ иметь хорошую производительность, так как UIScrollView и UITextView тесно интегрированы в графическое оборудование на устройстве.

Если текст действительно большой (сотни мегабайт), вы также должны удалить старый текст из верхней части текстового вида при добавлении нового текста в конец.

Просто используйте код, который у вас есть сейчас, но вместо NSLog() добавьте его в UITextView.

+0

Привет всем, спасибо за отзыв, после попытки с uitableview и uitextview я решил использовать uitextview, потому что он намного проще с моим состоянием, я тестирую тестовый тест более 1 часа и не проблема с производительностью. И я использую NSMutableString с i нужна новая строка выше, а не ниже. – user2373192

+0

@ user2373192 UITextField имеет свойство «storage», которое является NSTextStorage. Это подкласс NSMutableString, который специально разработан для текстового представления, а изменение текстового хранилища напрямую дает гораздо лучшую производительность, чем изменение NSMutableString. –

0

IMHO, UITableView будет идеальным выбором, поскольку он хорошо оптимизирован для повторного использования его ячеек. Если вы используете просмотр прокрутки, 3600 строк (это 1 час журнала), вероятно, будут содержать 3600 текстовых представлений (или меток), в то время как для представления таблицы всегда будет количество строк, видимых на экране.

Для модели данных, я думаю, вы можете просто использовать большой массив, который непрерывно извлекается с данными с сервера, возможно, усекается, когда он становится слишком большим (я имею в виду удаление очень старых строк).

Помните правило оптимизации: сначала запустите его, прежде чем его оптимизировать.

+0

Я уверен, что UITextView с одной массивной строкой будет быстрее и будет использовать меньше оперативной памяти, чем UITableView с большим массивом. Он не будет рисовать всю строку, он будет рисовать только подстроку, которая была изменена с каждой вставкой. –

+0

Хмм я не думаю, что ОЗУ - большая проблема здесь, учитывая, что 1 МИЛЛИОННЫЕ персонажи стоят всего 1 или 2 МБ. И «UITableView», и «UITextView» рисуют только видимые части текста, поэтому я не думаю, что производительность также является большой проблемой. 'UITableView' лучше, если журнал по очереди (аналогично' NSLog'), но не является вариантом, если журнал непрерывный, т. Е. Нет разрывов строк. –

+0

У меня есть журнал, который использует UITableView в моем приложении, и я не рекомендую его. Проблема в том, что он не обрабатывает перенос текста по умолчанию, и если вы реализуете правильную перенос текста, будет очень сложно поддерживать хорошую производительность. Если бы я снова собирался писать свой журнал, я бы использовал UITextView. –

Смежные вопросы