iOS TableView 分組

 

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; }
相關文章
相關標籤/搜索