iOS Tableview中的多列

时间:2010-07-15 05:22:36

标签: ios objective-c uitableview

如何在tableview的行中创建多个列?

3 个答案:

答案 0 :(得分:6)

UITableView并非真正设计用于多列。但您可以通过创建自定义UITableCell类来模拟列。在Interface Builder中构建自定义单元格,为每列添加元素。为每个元素添加一个标记,以便您可以在控制器中引用它。

给你的控制器一个插座,从你的笔尖加载单元格:

@property(nonatomic,retain)IBOutlet UITableViewCell *myCell;

然后,在表格视图委托的cellForRowAtIndexPath方法中,按标记分配这些值。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  static NSString *cellIdentifier = @"MyCell";

  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
  if (cell == nil) {
    // load cell from nib to controller's IBOutlet
    [[NSBundle mainBundle] loadNibNamed:@"MyTableCellView" owner:self options:nil];
    // assign IBOutlet to cell
    cell = myCell;
    self.myCell = nil;
  }

  id modelObject = [myModel objectAtIndex:[indexPath.row]];

  UILabel *label;
  label = (UILabel *)[cell viewWithTag:1];
  label.text = [modelObject firstField];

  label = (UILabel *)[cell viewWithTag:2];
  label.text = [modelObject secondField];

  label = (UILabel *)[cell viewWithTag:3];
  label.text = [modelObject thirdField];

  return cell;
}

答案 1 :(得分:0)

您可以并排使用多个UITableView。使用自定义单元格应该看起来不错。因此,您可以将其转换为看起来像DataGrid。 ; - )

答案 2 :(得分:-1)

我创建了UIGridView,其中一个UITableViewCell包含多个单元格。 您可以了解UIGridView的源代码。

我的建议是不要在你的UIViewController中对它进行编码。构建一个外部控件并在UIViewController中使用它是一种更好的方法。

或者你可以使用我的:)