首页 > 代码库 > iOSUISegmentController控制tableView的切换《UISegmentController不在导航栏上》

iOSUISegmentController控制tableView的切换《UISegmentController不在导航栏上》

1:创建两个tableView

@propertyUITableView *tableViewA;

@propertyUITableView *tableViewB;

 self.tableViewA=[[UITableViewalloc]initWithFrame:CGRectMake(SECTION_INDEX_ZERO,self.segmentView.frame.origin.y+self.segmentView.frame.size.height,SCREEN_WIDTH,SCREEN_HEIGHT-self.segmentView.frame.size.height)style:UITableViewStylePlain];

    [self.tableViewAsetDelegate:self];

    [self.tableViewAsetDataSource:self];

    [self.tableViewAsetBackgroundColor:RGBACOLOR(245,251, 248, 1)];

    [self.tableViewAsetSeparatorStyle:UITableViewCellSeparatorStyleNone];

    [self.viewaddSubview:self.tableViewA];

    

    

    self.tableViewB=[[UITableViewalloc]initWithFrame:CGRectMake(SECTION_INDEX_ZERO,self.segmentView.frame.origin.y+self.segmentView.frame.size.height,SCREEN_WIDTH,SCREEN_HEIGHT-self.segmentView.frame.size.height)style:UITableViewStylePlain];

    [self.tableViewBsetDelegate:self];

    [self.tableViewBsetDataSource:self];

    [self.tableViewBsetBackgroundColor:RGBACOLOR(245,251, 248, 1)];

    [self.tableViewBsetSeparatorStyle:UITableViewCellSeparatorStyleNone];

    [self.viewaddSubview:self.tableViewB];

2:在点击SegmentController的时候

- (void)segmentActio:(UISegmentedControl *)segmentControl{

   NSInteger index = [segmentControl selectedSegmentIndex];

   NSLog(@"text:%@",[segmentControltitleForSegmentAtIndex:index]);

   switch ([segmentControl selectedSegmentIndex]) {

       case 0:

           self.tableViewA.hidden=NO;

           self.tableViewB.hidden=YES;

            self.segmentControl.selectedSegmentIndex=0;

           self.tag=0;

            [self.tableViewAreloadData];

           break;

       case 1:

           self.tableViewA.hidden=YES;

           self.tableViewB.hidden=NO;

            self.segmentControl.selectedSegmentIndex=1;

           self.tag=1;

            [self.tableViewBreloadData];

           break;

       default:

            NSLog(@"segmentActionDefault");

           break;

    }

}


3:判断

if (self.tag==0) {

       CELL_INFO_t *cell_info=[selfgetCellInfo:indexPath];

       static NSString *cellID=@"cell";

       if (indexPath.section==0) {

           UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellID];

           if (cell==nil) {

                cell=[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:cellID];

                }

                cell.backgroundColor=CELL_BACK_COLOR;

            }

            cell.selectionStyle=UITableViewCellSelectionStyleNone;

           return cell;

        }

       else{

       static NSString *cellIDD=@"cellIDD";

       UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIDD];

       if (cell==nil) {

            cell=[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:cellIDD];

            cell.backgroundColor=CELL_BACK_COLOR;

        }

        

        cell.selectionStyle=UITableViewCellSelectionStyleNone;

       return cell;

        }

    }

   else if (self.tag==1){

       static NSString *identifier =@"LeaderCell";

       UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

       if (cell == nil) {

            cell = [[UITableViewCellalloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:identifier];

            //动态设置高度

            CGSize labelSize=[self.label.textboundingRectWithSize:CGSizeMake([UIScreenmainScreen].bounds.size.width-40,0) options:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:self.self.label.font}context:nil].size;

           self.label.frame=CGRectMake(38,image.frame.origin.y,labelSize.width, labelSize.height);

            [cell.contentViewaddSubview:self.label];

            cell.backgroundColor=RGBACOLOR(245,251, 248, 1);

        }

        cell.selectionStyle=UITableViewCellSelectionStyleNone;

       return  cell;

    }

   else

    {

        NSAssert(NO,@"Invalid tableView");

    }

    return nil;




iOSUISegmentController控制tableView的切换《UISegmentController不在导航栏上》