2010-04-08 2 views
0

Представьте себе, что у вас есть вид:Должен ли я использовать UITableView в этой ситуации?

Наверху есть UISegmentedControl с двумя сегментами. Он функционирует как вкладка. Нажатие одного сегмента активирует этот конкретный контент ниже UISegmentedControl.

Ниже перечислены переключатели UISegmentedControl. Они изменяют способ отображения содержимого.

И, наконец, под этими выключателями есть стол. Представьте себе таблицу не в смысле UITableView, а то, что она есть на самом деле: Таблица. Он показывает небольшие сообщения, такие как сообщения Twitter или сообщения чата, например, один ниже другого. Как вы знаете это из скайпа и других чатов. В основном это просто строки с некоторым форматированием. Метка, некоторые изображения, некоторые строки, фон. Довольно простой.

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

Так что я сделал: я положил все это в UIScrollView. Теперь я должен принять решение, если я буду использовать UITableView внутри этой части таблицы, или если бы я просто напечатал много строк в виде прокрутки (с -drawRect:).

Но некоторые проблемы в моей голове: Можно ли положить UITableView внутри UIScrollView? Я предполагаю, что это создает массу проблем. Я не хочу, чтобы часть таблицы была отдельно прокручиваемой.

Снова представьте себе этот вид: сначала есть некоторые основные вещи выбора (сегментированный контроль, переключатели). Затем идет стол. Когда вы прокручиваете, все прокручивается. Это в основном потому, что эта первая часть с настройками может быть довольно большой, поэтому вы хотели бы прокрутить ее.

следующее: Можно ли настроить UITableView таким образом, чтобы он состоял из двух частей? Один для этой части настроек и один для отображения фактических данных?

ответ

1

Ну, если вы собираетесь показывать ярлыки с помощью drawRect, вам нужно быть уверенным, что вы только рисуете часть экрана, которую пользователь может видеть (или вы тратите много времени). Кроме того, вам придется обрабатывать вычисления, которые не огромны, но это боль.

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

Затем вы хотите установить, что в классе, чтобы код оставался чистым. Кроме того, вы можете настроить «строки» данных как сейчас, так и в будущем. Лучше поместите их в класс.

К тому времени, когда вы закончите, вы переписали класс табличного представления с меньшим количеством функций и сложнее использовать.

Если вы не хотите, чтобы класс просмотра таблицы независимо прокручивать, есть свойство, что-то вроде «scrollingEnabled»

ETA:

Да, легко создавать различные типы клеток для различные разделы. Просто верните другую ячейку, основанную на параметре indexPath.row, переданному cellForRow

+0

спасибо помощнику. Посмотрим на это. – dontWatchMyProfile

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