Назначьте одно значение массива различным разделам в iPhone - PullRequest
0 голосов
/ 27 декабря 2010

У меня есть массив (resultArray), в котором содержится 21 элемент данных.Я хочу отобразить его в 8-секционной таблице с различным количеством строк.

Как правильно присвоить значение во всех строках?Оба indexpath.row и section.row дают неправильные значения.Как назначить одно значение массива для сгруппированной таблицы с большим разделом?

Ответы [ 2 ]

1 голос
/ 27 декабря 2010

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

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

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

0 голосов
/ 27 декабря 2010

Я бы создал многослойный массив для этого. Первый уровень будет счетчиком разделов, а второй уровень - строкой. Массив будет выглядеть примерно так:

resultArray{
    1 = {
        1 = first row in first section,
        2 = second row in first section
    },
    2 = {
        1 = first row in second section,
        2 = second row in second section
    }
}

тогда вы получите значение из массива в вашем cellForRowAtIndexPath: следующим образом:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSArray *sectionArray = [returnArray objectAtIndex:indexPath.section];
    cell = [sectionArray objectAtIndex:indexPath.row];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...