3

UIScrollView水平UITableView滚动并在其中垂直滚动,但水平滚动时无法加载不同的数据。

有一个滚动视图,它在屏幕上水平滚动,在其中我添加了多个 tableview 并希望在滑动时在 tableview 上显示不同的不同数据。我试过这个但没有运气:(

NSArray *arr1 = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
NSArray *arr2 = [[NSArray alloc] initWithObjects:@"4",@"5",@"6", nil];
NSArray *arr3 = [[NSArray alloc] initWithObjects:@"7",@"8",@"9", nil];
NSArray *arr4 = [[NSArray alloc] initWithObjects:@"10",@"11",@"12", nil];
arrData = [[NSMutableArray alloc] initWithObjects:arr1,arr2,arr3,arr4, nil];

int width=0;

for (int i = 0; i<[arrData count]; i++) {
    tblData = [[UITableView alloc] initWithFrame:CGRectMake(width, 20, 300, 245) style:UITableViewStylePlain];
    tblData.dataSource = self;
    tblData.delegate = self;
    [tblData setBackgroundColor:[UIColor clearColor]];
    tblData.separatorColor = [UIColor blackColor];
    [scrHorizontal addSubview:tblData];
    width+=300;
}

[self.scrHorizontal setContentSize:CGSizeMake(([arrData count])*300, self.scrHorizontal.frame.size.height)];

这里有 4 个滚动视图内的页面,其中包括 4 个表视图,我想在滑动滚动视图时在第一个表上显示 1、2、3 和在第二个表上显示 4、5、6,依此类推...

请帮助我提前谢谢。

4

1 回答 1

3

我看过你的代码,你可以用tag

  1. 在循环中将标签设置为 tableview

    for (int i = 0; i<[arrData count]; i++) {
    tblData = [[UITableView alloc] initWithFrame:CGRectMake(width, 20, 300, 245) style:UITableViewStylePlain];
    
    tblData.tag=i;
    tblData.dataSource = self;
    tblData.delegate = self;
    [tblData setBackgroundColor:[UIColor clearColor]];
    tblData.separatorColor = [UIColor blackColor];
    [scrHorizontal addSubview:tblData];
    width+=300;
    }
    

现在在cellForRowAtIndexPath方法中就像使用它一样

NSArray *arr = [arrData objectAtIndex:tableView.tag];
cell.textLabel.text = [arr objectAtIndex:indexPath.row];

检查它ScrollViewDemo

希望能帮助到你。

于 2013-09-13T10:59:07.153 回答