Создайте UITableView в разрезе по датам - PullRequest
0 голосов
/ 25 мая 2011

Как создать UITableView с разбивкой по дате? И как будут использоваться даты объектов при настройке табличного представления?

Ответы [ 2 ]

3 голосов
/ 25 мая 2011

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

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return [datesArray count];
}

Тогда вам нужно будет указать UITableDelegate, сколько строк вам понадобится на секцию.Для этого вы используете numberOfRowsInSection.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [[datesArray objectAtIndex:section] count];
}

Затем в методе cellForRowAtIndexPath просто получите данные customObject для ячейки из соответствующего массива раздела.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


    static NSString *CellIdentifier = @"CustomTableCell";
    static NSString *CellNib = @"UserCustomTableCell";

    UserCustomTableCell *cell = (UserCustomTableCell *)[table dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellNib owner:self options:nil];
        cell = (UserCustomTableCell *)[nib objectAtIndex:0];
    }

    MyObject *customObject = [[datesArray objectAtIndex:indexPath.section] indexPath.row];

    //Setup your cell here
    cell.date.text = [customObject date];

    return cell;
}
0 голосов
/ 25 мая 2011

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

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

numberOfSectionsInTableView будет основано на количестве различных дат в вашей дате. NumberOfRowsInSection будет основано на количестве элементов с каждой датой

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...