4

可能重复:
如何在 UITableView 中显示多列?

我有多行和多列数据。但是 iPhone UITableView 只包含单列和多行。如何按照 Apple 的人机界面指南显示我的多列数据?有任何想法吗?

4

2 回答 2

8

使用 GridView 来满足您的这一要求,请参阅下面的演示和教程链接...

  1. Grid-View-in-iPhone-using-UITableView-1665
  2. GMGridView
  3. UIGridView

我使用下面的代码来显示具有多列的时间表,示例的一些代码..

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString* cellIdentifier = @"gridCell";
    UITableViewCell *gridCell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if(gridCell == nil)
    {
        gridCell =  [[[UITableViewCellalloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:cellIdentifier] autorelease];
        gridCell.accessoryType = UITableViewCellAccessoryNone;
        gridCell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

    NSArray* items = [_grids objectAtIndex:indexPath.section];

    int imageIndex = 0;
    int yOffset = 0;

    while (imageIndex < items.count)
    {
        int yPos = 4 + yOffset * 74;

        for(int i = 0; i < 4; ++i)
        {
            CGRect  rect = CGRectMake((18 + i * 80), yPos, 40, 40);

            UIImageView* imageView = [self gridImageRect:rect forImage:[items objectAtIndex:imageIndex]];
            [gridCell.contentView addSubview:imageView];
            [imageView release];

            rect = CGRectMake(((80 * i)-4), (yPos+44), 80, 12);

            UILabel* label = [self descriptionOfImage:imageIndex inRect:rect];
            [gridCell.contentView addSubview:label];
            [label release];

            ++imageIndex;

        }

        ++yOffset;
    }

    return gridCell;
}

我希望这可以帮助你...

于 2012-12-14T05:29:18.310 回答
2

你可以继承你的 tableViewCell 或者你可以使用这个MDSpreadView

于 2012-12-14T05:39:58.610 回答