TableView与2列,iphone / ipad

任何人都可以告诉我如何在Iphone SDK中由colums创build两个单元格的tableview?

在这样的命令:

_____________ | 1 | 2 | |_____|______| | 3 | 4 | |_____|______| 

最好的祝福

在ios UITableView中,你只能有一个列/单元格。 如果你想要更多的属性,在同一个单元格中,你需要通过对UITableViewCell进行细分来创build一个自定义的表格视图单元格。 在界面生成器中,您可以自定义布局。 教程: http : //adeem.me/blog/2009/05/30/iphone-sdk-tutorial-part-6-creating-custom-uitableviewcell-using-interface-builder-uitableview/

你的问题的具体例子:

.h文件:

  #import <UIKit/UIKit.h> @interface MyCell : UITableViewCell { UIButton * column1; UIButton * column2; UILabel* column1_label1; UILabel* column1_label2; UILabel* column2_label1; UILabel* column2_label2; } @property (nonatomic,retain) UIButton * column1; @property (nonatomic,retain) UIButton * column2; @property (nonatomic,retain) UILabel* column1_label1; @property (nonatomic,retain) UILabel* column1_label2; @property (nonatomic,retain) UILabel* column2_label1; @property (nonatomic,retain) UILabel* column2_label2; @end 

.m文件:

 #import "MyCell.h" @implementation MyCell @synthesize column1,column1_label1,column1_label2,column2,column2_label1,column2_label2; - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { column1 = [UIButton buttonWithType: UIButtonTypeCustom]; column1.tag = 1; column1.autoresizingMask = 292; column1.backgroundColor = [UIColor redColor]; column1.frame = CGRectMake(0, 0, self.contentView.bounds.size.width/2, self.contentView.bounds.size.height); column1_label1 = [[UILabel alloc] initWithFrame: CGRectMake(column1.bounds.size.width*1/5, 0, column1.bounds.size.width*4/5, column1.bounds.size.height/2)]; column1_label1.backgroundColor = [UIColor redColor]; [column1 addSubview:column1_label1]; column1_label2 = [[UILabel alloc] initWithFrame: CGRectMake(column1.bounds.size.width*1/5, column1.bounds.size.height/2, column1.bounds.size.width*4/5, column1.bounds.size.height/2)]; column1_label2.backgroundColor = [UIColor greenColor]; [column1 addSubview:column1_label2]; [self.contentView addSubview: column1]; column2 = [UIButton buttonWithType: UIButtonTypeCustom]; column2.tag = 2; column2.autoresizingMask = 292; column2.backgroundColor = [UIColor greenColor]; column2.frame = CGRectMake(self.contentView.bounds.size.width/2, 0, self.contentView.bounds.size.width/2, self.contentView.bounds.size.height); column2_label1 = [[UILabel alloc] initWithFrame: CGRectMake(column2.bounds.size.width*1/5, 0, column2.bounds.size.width*4/5, column2.bounds.size.height/2)]; column2_label1.backgroundColor = [UIColor redColor]; [column2 addSubview:column2_label1]; column2_label2 = [[UILabel alloc] initWithFrame: CGRectMake(column2.bounds.size.width*1/5, column2.bounds.size.height/2, column2.bounds.size.width*4/5, column2.bounds.size.height/2)]; column2_label2.backgroundColor = [UIColor greenColor]; [column2 addSubview:column2_label2]; [self.contentView addSubview: column2]; } return self; } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } - (void)dealloc { [super dealloc]; } @end 

在UITableViewController中的用法:

  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // Return the number of sections. return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { // Return the number of rows in the section. return 40; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; MyCell * mycell2 = ((MyCell*)cell); if (cell == nil) { cell = [[[MyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; [mycell2.column1 addTarget:self action:@selector(column1Selected:) forControlEvents:UIControlEventTouchUpInside]; [mycell2.column2 addTarget:self action:@selector(column1Selected:) forControlEvents:UIControlEventTouchUpInside]; } // Configure the cell... mycell2.column1_label1.text = @"column1_label1"; mycell2.column1_label2.text = @"column1_label2"; mycell2.column1.tag = indexPath.row*2; mycell2.column2_label1.text = @"column2_label1"; mycell2.column2_label2.text = @"column2_label2"; mycell2.column2.tag = indexPath.row*2 +1; return cell; } - (void) column1Selected: (id) sender { UIAlertView *alert = [[ UIAlertView alloc] initWithTitle: @" Alert" message: [NSString stringWithFormat: @"button %d",((UIButton *) sender).tag] delegate: nil cancelButtonTitle: @" OK" otherButtonTitles: nil]; [alert show] ; [alert release]; } 

在iOS6中,您可以使用UICollectionView 。

如果你需要iOS5的支持AQGridView是一个网格控件,会给你你以后的东西。