1.在類名爲ZLViewController的.xib文件上面拖上控件tableview,tableview控件命名爲命名爲chatWindow。在ZLViewController類的頭文件中添加協議數組
@interface ZLViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>。函數
2.在.m文件裏面添加全局的兩個動態數組變量,動態數組sections存放的是group(即組)的標題內容,動態數組rows存放的是cell(即行)的內容。spa
如:code
@interface ZLViewController () { NSMutableArray *sections; NSMutableArray *rows; }
在函數viewDidLoad添加以下:orm
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //爲tableview添加委託和表視圖的數據源 self.chatWindow.delegate=self; self.chatWindow.dataSource=self; //初始化兩個動態數組 sections=[[NSMutableArray alloc]init]; rows=[[NSMutableArray alloc]init]; //爲兩個動態數組添加對象 [sections addObject:[NSString stringWithFormat:@"張"]]; [sections addObject:[NSString stringWithFormat:@"李"]]; [sections addObject:[NSString stringWithFormat:@"王"]]; [sections addObject:[NSString stringWithFormat:@"周"]]; for (int i=0; i<5; i++) { NSString *str=[NSString stringWithFormat:@"張 %d",i]; [rows addObject:str]; } for (int i=5; i<10; i++) { NSString *str=[NSString stringWithFormat:@"李 %d",i]; [rows addObject:str]; } for (int i=10; i<15; i++) { NSString *str=[NSString stringWithFormat:@"王 %d",i]; [rows addObject:str]; } for (int i=15; i<20; i++) { NSString *str=[NSString stringWithFormat:@"周 %d",i]; [rows addObject:str]; } }
3.爲Tableview添加相應的方法以下:對象
#pragma mark - #pragma mark Table View DataSource Methods //指定有多少個分區(Section),默認爲1 -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return [sections count]; } //指定每一個分區中有多少行,默認爲1 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return [rows count]/[sections count]; } //改變行的高度 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 60; } //添加每一個分區標題和腳本信息 - (NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
//動態數組裏面的內容 return sections[section]; } - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{ return @"顯示"; } //每一行的內容 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *TableSampleIdentifier = @"TableSampleIdentifier"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: TableSampleIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:TableSampleIdentifier]; } NSUInteger row = [indexPath row];
//計算cell在動態數組rows中的位置(rows的值只是0,1,2,3,5.section的值只是0,1,2,3,每個section對應rows的五個值(0,1,2,3,4)) NSUInteger rowResult=row+(indexPath.section*5);
//設置每一行(即cell)的內容以下 cell.textLabel.text =[rows objectAtIndex:rowResult]; return cell; } //行縮進 -(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{ NSUInteger row = [indexPath row]; return row; }