创建由日期划分的UITableView

时间:2011-05-25 18:07:12

标签: iphone uitableview

如何创建由Date划分的UITableView?在设置tableview时如何使用对象的日期?

2 个答案:

答案 0 :(得分:3)

如果您已经知道要用于节的日期将它们作为数组存储在数组中。换句话说,为您想要充当节的每个日期创建一个数组。然后浏览您的customObjects并将它们插入适当的section数组中。如果您使用此方法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;
}

答案 1 :(得分:0)

您希望创建一个分组的UITableView,并将每个对象的日期作为表格的各个部分。

您可能希望将日期读入数组,仅存储唯一日期,并使用该数组计数来设置表中的节数。然后,在填充每个部分中的行时,将数组中的每个日期与数据源中与该日期匹配的对象进行匹配。 (除非您的数据已按日期在数据源中排序)。

numberOfSectionsInTableView将基于您日期中不同日期的数量 numberOfRowsInSection将基于每个日期的元素数

使用indexPath对你的字典或其他数据源保存你的section(Date)和row(对象),以获取cellForRowAtIndexPath方法的数据。