我正在使用几个 UITableViews 垂直放置在彼此旁边的项目上。我必须显示这些表格,但是当我尝试为每个表格显示不同的表格内容时卡住了。这是代码:
-(void)setTheTable{
int numberOfTables = 5;
//height of the table
CGFloat height = self.view.bounds.size.height;
CGRect tableBounds = CGRectMake(0.0f, 0.0f, self.widthOfTheScreen, height- 30);
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0f, 30.0f, self.widthOfTheScreen, height - 30.0f)];
self.scrollView.contentSize = CGSizeMake(self.widthOfTheScreen * numberOfTables, height-30);
self.scrollView.pagingEnabled = YES;
self.scrollView.bounds = tableBounds;
[self.view addSubview:self.scrollView];
//put five tables
CGRect tableFrame = tableBounds;
tableFrame.origin.x = 0;
for (int i = 0; i < numberOfTables; i++) {
UITableView *tableView = [[UITableView alloc] initWithFrame:tableFrame style:UITableViewStylePlain];
tableView.delegate = self;
tableView.dataSource = self;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
}
switch (i) {
case 0:
tableView.backgroundColor = [UIColor yellowColor];
tableView.tag = 0;
cell.textLabel.text = @"section = 0 行0";
break;
case 1:
tableView.backgroundColor = [UIColor blueColor];
tableView.tag = 1;
break;
case 2:
tableView.backgroundColor = [UIColor brownColor];
tableView.tag = 2;
break;
case 3:
tableView.backgroundColor = [UIColor greenColor];
break;
case 4:
tableView.backgroundColor = [UIColor cyanColor];
break;
default:
break;
}
[self.scrollView addSubview:tableView];
tableFrame.origin.x += self.widthOfTheScreen;
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
}
int num = tableView.tag;
if(num == 1) {
if(indexPath.row == 0) {
cell.textLabel.text = @"section = 0 行0";
} else if(indexPath.row == 1){
cell.textLabel.text = @"section = 0 行1";
} else {
cell.textLabel.text = @"section = 0 行2";
}
} else {
NSString *str = [[NSString alloc] initWithFormat:@"section = %d col %d",indexPath.section,indexPath.row];
cell.textLabel.text = str;
}
return cell;
}
我认为 tableview.tag 会有所帮助,但给了我 5 个相同的表。你们能给我一些想法来解决这个问题吗?
谢谢你。