UITableView有多个部分和accessoryType

时间:2014-05-28 14:50:40

标签: ios uitableview cell sections

这是我的表格视图的功能。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

    return [self.categories count];

}


- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {


    return @"test";
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSLog(@"%d", self.collections.count);
    return [self.collections count];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }
    switch ([indexPath section])
    {
        case 0:
            self.myList = self.collections;
            break;
    }

        cell.textLabel.text = self.collections[indexPath.row];

    cell.accessoryType =  UITableViewCellAccessoryDisclosureIndicator;
    return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 48;
}

实际上,使用此代码,我的表视图显示同一视图中的所有部分和单元格。

但是,我想要一个表格视图,第一次显示我的标题部分的行。 当我点击有我的标题部分的行时,我想显示该部分中的单元格。我怎样才能做到这一点? 我需要2个tableViews吗?

1 个答案:

答案 0 :(得分:0)

你应该采取两个uitableview,因为你必须使用这个代码,代理是相同的

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *CellIdentifier = [NSString stringWithFormat:@"%@",indexPath];
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];


    if (cell==Nil)
    {
        cell= [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
        [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
    }
    if (isDeptSelected)
    {
        //[cell.imageView setImage:[UIImage imageNamed:@"Department.png"]];
        cell.textLabel.text = [[arrDept_Detail valueForKey:@"dep_Name"]objectAtIndex:indexPath.row];
    }
    else if (isEmpSelected)
    {
        [cell.imageView setImage:[UIImage imageNamed:@"Emp_Images"]];
        cell.textLabel.text = [[arrEmp_Detail valueForKey:@"emp_Name"]objectAtIndex:indexPath.row];

    }


   // cell.textLabel.text=[[arrDept_Detail objectAtIndex:indexPath.row]valueForKeyPath:@"dep_Name"];
    [cell setBackgroundColor:[UIColor brownColor]];
    [cell.textLabel setTextColor:[UIColor greenColor]];
    [cell.textLabel setFont:[UIFont fontWithName:@"Georgia-Bold" size:16]];
     cell.textLabel.highlightedTextColor=[UIColor purpleColor];
    [self.view setBackgroundColor:[UIColor brownColor]];

    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (isDeptSelected)
    {
        isDeptSelected=false;
        isEmpSelected=true;
        [btnDoneclick setHidden:NO];
        [self.view addSubview:btnDoneclick];
        EmpInDepTableView=[[UITableView alloc]initWithFrame:CGRectMake(160, 284,0, 0)];
        [EmpInDepTableView setDelegate:self];
        [EmpInDepTableView setDataSource:self];
        [EmpInDepTableView setHidden:NO];
        [EmpInDepTableView setBackgroundColor:[UIColor brownColor]];
        EmpInDepTableView.layer.borderWidth=3.0f;
        EmpInDepTableView.layer.cornerRadius=10.0f;
        [self.view addSubview:EmpInDepTableView];
        self.tabBarController.tabBar.userInteractionEnabled=NO;
        UITableViewCell *cell=[Dept_TableView cellForRowAtIndexPath:indexPath];
        DeptId=[Dep_Detail fetchDeptId_DeptName:cell.textLabel.text];
        arrEmp_Detail = [[Emp_Detail fetchEmp_By_DeptId:DeptId]mutableCopy];

        [UITableView animateWithDuration:0.6 animations:^
         {
             [EmpInDepTableView setFrame:CGRectMake(0, 64,320, 430)];
             [btnDoneclick setFrame:CGRectMake(0,490,320,29)];
         }completion:^(BOOL finished)
         {
             [EmpInDepTableView reloadData];

         }];

    }
    else if (isEmpSelected)
    {

    }
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    UIView *view = [[UIView alloc] init];
    [view setBackgroundColor:[UIColor brownColor]];
    return view;
}

-(IBAction)btnDoneclicked:(id)sender
{
    [EmpInDepTableView reloadData];

    isDeptSelected=true;
    isEmpSelected=false;
    [btnDoneclick setHidden:YES];
    self.tabBarController.tabBar.userInteractionEnabled=YES;

    [UITableView animateWithDuration:0.6 animations:^
    {
        [EmpInDepTableView setFrame:CGRectMake(160, 284, 0, 0)];
        [btnDoneclick setFrame:CGRectMake(160, 284, 0, 0)];
        [self.view setBackgroundColor:[UIColor brownColor]];



    }completion:^(BOOL finished)
    {

    }];


}