3

UIScrollView水平方向にUITableViewスクロールし、その中で垂直方向にスクロールしますが、水平方向にスクロールすると異なるデータをロードできません。

画面上で水平にスクロールするスクロールビューが1つあり、その中に複数のテーブルビューを追加し、スワイプ時にテーブルビューにさまざまなデータを表示したいと考えています。私はこれを試しましたが、運がありません:(

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、2番目のテーブルに4,5,6を表示したい...

よろしくお願いします。

4

1 に答える 1

3

私はあなたのコードを見てきました、あなたはで行うことができますtag

  1. ループ内のテーブルビューにタグを設定

    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 に答える