一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

iOStableview中再嵌套一个tableview等

时间:2022-06-25 23:44:18 编辑:袖梨 来源:一聚教程网

在开发中,我们经常会遇到一种情况,就是需要在tableView中嵌套tableview或者像CollectionView,代码如下:

@interface ViewController : UIViewController<UITableviewdelegate,uitableviewdatasource>
 {
 UITableView * rootTable;
 UITableView * insertTabelView;
 NSMutableArray * dataArray;
 
 }
 @end
 ViewController.m
 #import "ViewController.h"
 
@interface ViewController ()
 
@end
 
@implementation ViewController
 
- (void)viewDidLoad
 {
 [super viewDidLoad];
 [self initView];
 dataArray= [[NSMutableArray alloc]initWithObjects:@"中",@"梦",@"科",@"技",@"made in china",nil];
 self.navigationItem.title = @"TwoTableView";
 
}
 
-(void)initView
 {
 rootTable = [[UITableView alloc]initWithFrame:CGRectMake(0, 65, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStyleGrouped];
 rootTable.delegate = self;
 rootTable.dataSource = self;
 [self.view addSubview:rootTable];
 
}
 
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
 {
 if (tableView == rootTable)
 {
 if (indexPath.row == 0)
 {
 return [dataArray count]*44;
 }else
 {
 return 70;
 }
 }else
 {
 return 44;
 }
 }
 -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
 {
 if (tableView == rootTable)
 {
 return 5;
 }else
 {
 return 1;
 }
 }
 
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 {
 if (tableView == rootTable)
 {
 return 4;
 }else
 {
 return [dataArray count];
 }
 }
 
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
 UITableViewCell * cell = [[UITableViewCell alloc]init];
 if (tableView == rootTable)
 {
 if (indexPath.row == 0)
 {
insertTabelView= [[UITableView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, [dataArray count]*44)];
insertTabelView.delegate = self;
insertTabelView.dataSource = self;
insertTabelView.scrollEnabled = NO;
 [cell.contentView addSubview:insertTabelView];
 }else
 {
 cell.textLabel.text = @"rootTableView";
 }
 
return cell;
 }else
 {
 cell.textLabel.text = [dataArray objectAtIndex:indexPath.row];
 cell.backgroundColor = [UIColor yellowColor];
 return cell;
 }
 }
 
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
 if (tableView == rootTable)
 {
 NSLog(@"roottableView");
 }else
 {
 NSLog(@"中");
 }
 
@end
到这里,插入进去的insertTableView就被我们放到第一个tableViewCell中去,更多的用法,还要考自己创意了。

热门栏目