iphone:如何在UITableView中制作多列

时间:2012-12-14 05:25:46

标签: iphone ios uitableview multiple-columns

  

可能重复:
  How to display multiple columns in a UITableView?

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

2 个答案:

答案 0 :(得分:8)

使用GridView满足此要求,请参阅演示和教程的以下链接...

  1. Grid-View-in-IPhone-using-UITableView-1665
  2. GMGridView
  3. UIGridView
  4. 我使用下面的代码来显示包含多列的Time-Table,例如,一些代码..

    - (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;
    }
    

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

答案 1 :(得分:2)

您可以将tableViewCell子类化,也可以使用此MDSpreadView