2012-12-14 55 views
4

可能重複:
How to display multiple columns in a UITableView?iPhone:如何做的UITableView多列

我有多個數據行和列。但iPhone UITableView只包含單列和多行。如何按照Apple的人機界面指南顯示我的多列數據?有任何想法嗎?

+0

改變你的X新列... :) – user7388

+0

看看在http: //www.ioscomponents.com/Home/IOSDataGrid –

+0

檢查此類似答案可能會更好。 https://stackoverflow.com/questions/2855857/how-to-display-multiple-columns-in-a-uitableview#29249737 –

回答

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

我希望這個幫你...

+0

@ani使用第一個選項從我的答案這個鏈接http://www.mindfiresolutions.com/在這裏你可以在tableview中設置多列的GridView-in-iPhone-using-UITableView-1665.php –

+1

謝謝.... Paras – ani

2

要麼你可以繼承你的tableViewCell或者您可以使用此MDSpreadView