在xib上拖一个uitableView ,并把dataSource,delegagte与files owner联系。
1,接口实现协议
<UITableViewDataSource,UITableViewDelegate>
2,用windows + 鼠标左键查看方法内容,在UITableViewDataSource找到必须实现的方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
3,书写实现方法:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return 3; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ NSUInteger rowx = [indexPath row]; UITableViewCell *cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:nil]autorelease]; if(rowx == 0 ){ cell.textLabel.text = @"1"; cell.detailTextLabel.text = @"1_detail"; }else if(rowx == 1 ){ cell.textLabel.text = @"2"; cell.detailTextLabel.text = @"2_detail"; }else if(rowx == 2){ cell.textLabel.text = @"3"; cell.detailTextLabel.text = @"3_detail"; [cell.imageView setImage:[UIImage imageNamed:@"1.jpg"]]; } return cell; }
优化代码:
接口定义属性:
@property(assign) NSArray *listData;
实现类里:
- (void)viewDidLoad { NSArray *array = [[NSArray alloc]initWithObjects:@"one",@"Two",@"three",nil ]; self.listData = array; [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return self.listData.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ /**自定义重用标示符号:**/ static NSString *simpleTableIdentifier = @"SimpleTableIdentifier"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; if(cell == nil) { //初始化表格单元 cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:simpleTableIdentifier] autorelease]; } NSUInteger rowx = [indexPath row]; NSString *name = [self.listData objectAtIndex:rowx]; cell.textLabel.text = name; if(rowx == 0 ){ cell.detailTextLabel.text = @"1_detail"; }else if(rowx == 1 ){ cell.detailTextLabel.text = @"2_detail"; }else if(rowx == 2){ cell.detailTextLabel.text = @"3_detail"; [cell.imageView setImage:[UIImage imageNamed:@"1.jpg"]]; } return cell; }
鼠标选中行,添加监听事件
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{ NSLog (@"用户选中了第%d行",[indexPath row]); return indexPath; }
更多事件,查看代理类:UITableViewDelegate