首页 > 代码库 > 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不在导航栏上》